Suppose that you are playing a card game whose goal is to collect exactly k cards with a total value of t. Write a solution that can determine if it is possible for a given collection of cards whose values are given in the array values. For example, if the array contained the values <10,5,7,2>, k = 3, and t = 12, you would return false because no three values add to 12. However, if t = 14, you would return true, since 5 + 7 + 2 = 14. So I considered this to be a form of groupSum recursion, so I try to implement it in recursion form. However, since the passing parameters are not the incrementing level index but 'k' that is the limit number of the numbers we can choose from the array, I cannot use passing index through recursion to search from the start of the array toward the end of the values.length(the length of the array
Suppose that you are playing a card game whose goal is to collect exactly k cards with a total
value of t. Write a solution that can determine if it is possible for a given collection of cards
whose values are given in the array values. For example, if the array contained the values
<10,5,7,2>, k = 3, and t = 12, you would return false because no three values add to 12.
However, if t = 14, you would return true, since 5 + 7 + 2 = 14.
So I considered this to be a form of groupSum recursion, so I try to implement it in recursion form. However, since the passing parameters are not the incrementing level index but 'k' that is the limit number of the numbers we can choose from the array, I cannot use passing index through recursion to search from the start of the array toward the end of the values.length(the length of the array). would there be any method I can use to increment and search along the array using k, the number of numbers we can add into the total(t) instead of the increment of the index from the start?
kind of code I am trying to make in Java:
public static boolean isWinnable(int[] values, int k, int t) {
if (k == 0) {
return t == 0;
}
if (isWinnable(values, k - 1?, t)) { #recursion that is going to apply current index value
return true;
}
if (isWinnable(values, k - 1?, t - values[?])) { #recursion that is not going to apply current index value
return true;
}
return false;
}
}
Step by step
Solved in 2 steps with 2 images