我是靠谱客的博主 快乐航空,最近开发中收集的这篇文章主要介绍数组循环右移 k 位,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

例: 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 位的全部内容,希望文章能够帮你解决数组循环右移 k 位所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部