例: arr[] = 12345678; k = 2
1.逆序前 6(8-2) 位 -> 65432178
2.逆序后 2 位 -> 65432187
3.全部逆序 -> 78123456
private static void reverseK(int[] arr,int k) {
if(arr != null) {
int n = arr.length;
k = k % n;
reverse(arr, 0, n-1-k);
reverse(arr, n-k, n-1);
reverse(arr, 0, n-1);
}
}
private static void reverse(int[] arr,int begin,int end) {
for( ; begin < end; begin++,end--) {
int temp = arr[begin];
arr[begin] = arr[end];
arr[end] = temp;
}
}
最后
以上就是快乐航空最近收集整理的关于数组循环右移 k 位的全部内容,更多相关数组循环右移内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复