私はrecursiveメソッドを使用してgroupSumを調べるためのこのコードを持っています。 この例でどのように再帰的に動作するのか分かりません。私はデバッグを使用しましたが、まだそれを理解していません。Javaでnumber sumの再帰はどのように機能しますか?
public class test {
public boolean groupSum(int start, int[] nums, int target) {
if(target == 0)
return true;
if (start == nums.length)
return false;
if (groupSum(start+1, nums, target-nums[start])) // what is the meaning of this line ? can we change this line to make the code easier to understand ?
return true;
return groupSum(start+1, nums, target);
}
public static void main(String[] args) {
int x = 0;
int y [] = {2,4,8};
int k = 10;
test t = new test();
boolean result = t.groupSum(x,y,k);
System.out.println(result);
}
}
おかげ
紛らわしいものは何も言わずに、あなたが理解していないことを知るのは難しいです。デバッガを使用すると助けてくれるはずです。使用していれば、それだけ役立つはずです。 (それは練習と一緒に来ます) –
この問題の良い治療方法はhttp://codingbat.com/prob/p145416です。同じテストケースを使用します。そこからここに来ましたか?彼らの説明についてあなたは理解できませんでしたか? –
はい私はそこから来ました..私はこの行を正しく理解していませんでした 'groupSum(start + 1、nums、target-nums [start]) ' –