MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Given a row vector V of different numerical values and a size limit L, return a 1x2 vector A, containing (a) the largest sum of any subset of elements in the input vector V, which is lower than or equal to the size limit, and (b) the number of different possible subsets of V with which this sum can be achieved.

Note that two or more elements in V may have the same value and will be considered as two different possibilities.

Example 1:

Input V = [ 4 2 6 3 6 ]

Input L = 11

Output A = [ 11 2 ]

The size limit of 11 can be obtained (exactly, in this case) by adding 2, 3 and 6 together, but there are two different elements with the value of 6 and, therefore, two possible subsets of V satisfying the condition.

Example 2:

Input V = [ 1.1 1.3 0.6 0.9 ]

Input L = 2.5

Output A = [ 2.4 1 ]

The sum of 2.4, which is the highest sum of any subset of V that does not exceed L, can be obtained in only one way.

13 correct solutions
6 incorrect solutions

Last solution submitted on Jan 29, 2015

1 player likes this problem