VOOZH about

URL: https://www.geeksforgeeks.org/dsa/maximize-count-of-array-elements-required-to-obtain-given-sum/

⇱ Maximize count of array elements required to obtain given sum - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Maximize count of array elements required to obtain given sum

Last Updated : 15 Jul, 2025

Given an integer V and an array arr[] consisting of N integers, the task is to find the maximum number of array elements that can be selected from array arr[] to obtain the sum V. Each array element can be chosen any number of times. If the sum cannot be obtained, print -1.

Examples:

Input: arr[] = {25, 10, 5}, V = 30
Output: 6
Explanation:
To obtain sum 30, select arr[2] (= 5), 6 times.
Therefore, the count is 6.

Input: arr[] = {9, 6, 4, 3}, V = 11
Output: 3
Explanation:
To obtain sum 11, possible combinations is : 4,4,3
Therefore, the count is 3

Naive Approach: The simplest approach is to recursively find the maximum number of array elements to generate the sum V using array elements from indices 0 to j before finding the maximum number of elements required to generate V using elements from indices 0 to i where j < i < N. After completing the above steps, print the count of array elements required to obtain the given sum V

Time Complexity: O(VN)
Auxiliary Space: O(N)

Efficient Approach: To optimize the above approach, the idea is to use Dynamic Programming. Follow the below steps to solve the problem:

  • Initialize an array table[] of size V + 1 where table[i] will store the optimal solution to obtain sum i.
  • Initialize table[] with -1 and table[0] with 0 as 0 array elements are required to obtain the value 0.
  • For each value from i = 0 to V, calculate the maximum number of elements from the array required by the following DP transition:

table[i] = Max(table[i - arr[j]], table[i]), Where table[i-arr[j]]!=-1 
where 1 ? i ? V and 0 ? j ? N

  • After completing the above steps, print the value of the table[V] which is the required answer.

Below is the implementation of the above approach:


Output
6

Time Complexity: O(N * V)
Auxiliary Space: O(N)

Comment