私は数週間は自分でJavaを学習してきましたが、私はオンラインで見つけた1つの課題の質問に完全に立ち往生しました。私はthouroughly他の誰かがそれを尋ねたかどうか見るためにGoogleを検索したが、私は何かを見つけるように見えない。私は先生がいないので、StackOverflowの誰かが私を助けてくれるのだろうかと思っていました。初心者が配列に問題がある
私のテストケースが失敗し続けるため、私の方法の1つに問題があります。正確に何が間違っているのかよく分かりません。
[2,8,3,9,7]のような配列を入力すると、基本的に[2,3,7,8,9]のように出てきます。しかし、私がここに書いたこの書き方が貧弱なため、冒頭に余分な要素が残っているので、結果は[2、2、3、7、8、9]となります。このメソッドで私の具体的な目標は、重複を含む "高"と等しいかそれ以上のすべての値を含む配列を見つけて返すことです。この配列の長さは、 'range'の要素数と同じでなければならず、したがってメソッド名になります。
私はこの最初の要素の問題を解消するために取るべき次のステップに向けて適切に指示されたかっただけです。コードはおそらくひどくて面倒だと分かっていますので、私にご負担ください。
ありがとうございます。すべての助けに感謝します!
public static int[] range(int[] a, int low, int high) {
if (a == null || a.length == 0) {
throw new IllegalArgumentException();
}
int[] newArr = new int[0];
if (low <= high) {
if (a.length == 1 && low >= a[0] && high <= a[0]) {
return a;
}
for (int i : a) {
if (i >= low && i <= high) {
int[] duplicate = new int[(a.length + 1)];
int count = 0;
for (int num : a) {
duplicate[count] = num;
count++;
}
duplicate[count] = i;
return duplicate;
}
}
}
if (newArr.length > 1) {
Arrays.sort(newArr);
}
return newArr;
}
'Arrays.sort'(と' null'/'length'チェック)が必要です。なぜ他のコードはすべて? –
*本書では別のものを求めているので、単にメソッドをソートしようとしているだけではありません。あなたは何をしようとしていますか? – shmosel
@shmoselに続いて、まさにあなたは何をしようとしていますか?また、重複配列を作成し、必要以上に1つを割り当てるときは、新しいint [a.length]を実行する必要があります。 – okaram