以下方法的返回語句難倒我:用||遞歸返回語句在它
public static boolean groupSum(int start, int[] nums, int target, int max) {
if (start >= nums.length) { return target == 0; }
// can't use max value
else if (nums[start] == max) {
return groupSum(start + 1, nums, target, max);
}
else {
return groupSum(start + 1, nums, target - nums[start], max) ||
groupSum(start + 1, nums, target, max);
}
}
如果你注意到,return語句具有|| 「或」條款,並且我對這裏返回的條款感到困惑......如果你能提供一個關於它如何工作的解釋,那就太好了。
一個'return'聲明_returns_一個值,而不是一個條款。 「||」是一個應用於兩個操作數併產生一個值的運算符。 –
那麼哪些值被返回?左側還是右側的值?它基於什麼? – user3730244
@ user3730244 - 結果是兩個操作數的比較,而不是任何一個操作數 – kolossus