元の配列を関数のパラメータとして提供した後に配列を更新しようとしています。私はこれを達成する方法がわかりません。私はまだすべての材料をカバーしていないと私はあなたの助けが必要です。だから私は、達成しようとしています何:結果の配列で配列を更新して関数を呼び出すことから
オリジナル配列:[1、2、3、4、5、6]
のn = nは、配列の回数が要素である3ます右
シフトアレイにシフトさせること:[4、5、6、1、2、3]
Iは、1つの位置だけシフトメソッドを作成しました。私はNポジションで切り替えるもう一つの方法を持っています。ここで私はメソッドを1ポジション切り替えます。配列を一度切り替えますが、元の配列をシフトの結果で更新することはできません。だからではなく、取得する:
Original array: [1, 2, 3, 4, 5, 6]
RIGHT SHIFT: [6, 1, 2, 3, 4, 5]
RIGHT SHIFT: [5, 6, 1, 2, 3, 4]
RIGHT SHIFT: [4, 5, 6, 1, 2, 3] --> **final result** <br>
私が取得:
Original array: [1, 2, 3, 4, 5, 6]
RIGHT SHIFT: [6, 1, 2, 3, 4, 5]
RIGHT SHIFT: [6, 1, 2, 3, 4, 5]
RIGHT SHIFT: [6, 1, 2, 3, 4, 5]
は私のコード:
public class Shift {
public static int[] rotate(int[] seq){
int[] origArr = seq;
int[] shiftedArrR = new int[seq.length];
for (int i = 0, j = i+1; j < origArr.length; i++, j++) {
shiftedArrR[j] = origArr[i];
}
shiftedArrR[0] = origArr[origArr.length-1];
System.out.print("RIGHT SHIFT: ");
System.out.println(java.util.Arrays.toString(shiftedArrR));
return shiftedArrR;
}
public static void rotate(int[] seq, int times){
System.out.println(java.util.Arrays.toString(seq));
int[] temp = new int[seq.length];
for (int i = 1; i <= times; i++) {
temp = rotate(seq);
}
}
// ------------ MAIN METHOD ----------------
public static void main(String[] args) {
System.out.print("Original array: ");
rotate(new int[]{1,2,3,4,5,6}, 3);
}
}
どうやら回転(配列)の結果は、ある配列に割り当てられていませんrotate()メソッドに提供されています。 私はそれが何か非常に簡単であることを知っていて、これを修正するさまざまな方法を試しましたが、運がありません。
ありがとう!私はそれが本当にシンプルなものだと分かっていましたが、私はそれについて盲目でした。 :) –