私は配列を持っているので、配列要素をn-indexでシフトしたいと思います。問題の簡略化のため、1-index
に移動したいとします。またはrecursion
と書いてn-times
にすることができます。配列要素をn回シフトする方法は?
言って、配列がA = [3, 8, 9, 7, 6]
であると私はそれA = [6, 3, 8, 9, 7]
私はインデックスを取るとn-インデックスによりシフトするのHashMapを考えさせるために1-index
によってright shift
したいと思います。言って、
Map<Integer, Integer> map = new HashMap<>();
int n = 2;
for(int j =0; j < arr.length; j++){
if(j+2 > arr.length -1){
map.put(j+2 - arr.length, arr[j]);
}
map.put(j+2, arr[j]);
}
for(Map.Entry<Integer, Integer> map : amp.entrySet()){
arr[map.getKey()] = map.getValue();
}
解決策は私にはあまり気に入らない。どのようにアルゴリズムを書くか?
何か試しましたか? – GurV
はい、インデックスを取り、 'n-indexes 'だけシフトする' HashMap'を考えています。その解決策は私にはあまり感じられません。 whileまたはrecursionと言ったのは – Chak
です。それらを試しましたか? – GurV