私はjavaで基本的な配列の問題を練習しています。 n個の要素をk単位だけ左右に回転させることに問題がありました。私は100個の以上の要素を持っている場合は、この後Java逆配列方法はどのように機能しますか?
return new int[]{arr[1],arr[2],arr[0]};
:
私は、小さな要素の配列に対処するために、私は、配列int[]arr={1,2,3};
を持っているような、私はちょうどこのような要素の位置を切り替えることができます方法を知っていますこの方法では配列はまったく機能しません。だから私は誰かがそれに対処するために逆の方法を使用するのを見た。
public void rotateProblem(int[]arr,int k){ //k means rotate k units to right
k%=arr.length;
k=2;
reverse(arr, 0, arr.length - 1);
reverse(arr, 0, k - 1);
reverse(arr, k, arr.length - 1);
}
しかし、私は全くこのメソッドは、配列を反転んどのようにそれを得ることはありません、そして、なぜ私は誰もが逆の方法私には説明できk%=arr.length;
を使用する必要がありますか?
'reverse'メソッドを投稿してください。 –
'k%= arr.length;'はあなたが 'k = 2; 'を持っているので何もしませんが、これはkの大きな値を扱うことが期待されます。 –