0

次のヘッダーを使用してメソッドを作成しようとしています。

public static boolean difference(int[] numbers, int size, int difference) {...}

リスト「数値」から任意の 2 つの整数を選択できるかどうかを判断できるようにして、それらの差がパラメーター「差」と等しくなるようにしたいと考えています。

これまでのところ、リスト「数字」内の要素のすべての可能な組み合わせを要素に含むリストを作成し、すべての可能な差値の別のリストを埋める必要があると考えていました。

次に、パラメーター「差分」がそのリスト内にあるかどうかを最終的に確認します。そうであれば、それは true を返します。また、これを再帰的に実行したいので、助けていただければ幸いです。ありがとう!

4

2 に答える 2

1

違いのリスト全体を作成する必要はありません-numbers[1] - numbers[0]希望する違いが得られたらどうしますか?あなたは多くの時間を無駄にしていたでしょう。2つのネストされたループを使用forして配列をループし、異なるインデックスの2つの数値に目的の違いがあるかどうかを確認できます。return trueループを続行する理由がないため、存在する場合は、メソッドを完全に終了します。

于 2012-11-18T20:56:18.583 に答える
1

あなたは再帰について学ぼうとしていると思いますが、これは宿題だと思います。コード例は示しませんが、参考になれば幸いです。

問題をより単純なサブ問題に分割する方法を考える必要があるかもしれません。おそらく、リスト内で特定の違いを持つペアを見つけるという難しい問題の代わりに、リストの先頭にある数字を取得し、それを他のすべての数字と比較することで、正しい違いが見つかるかどうかをチェックするメソッドを書くことができます。リストの数字。

次に、メソッドを変更して、最初の番号をポップオフし、リストの残りの部分をチェックし、失敗した場合はリストの残りの部分で自分自身を呼び出すことができますか? 何を返すかを考えます。ここまでくれば、完了です。リストに残っている要素がなくなるとどうなるか注意してください。

于 2012-11-18T21:07:27.550 に答える