问题描述: 返回将一维数组向右旋转k个位置的结果。
比如,一维数组{1,2,3,4,5},k=2时,返回结果是{4,5,1,2,3}。 要求常数级空间复杂度,允许修改原有数组。解法与分析: 使用三旋转:全部旋转一次,前面0到k-1旋转一次,后面k到数组最后一个数旋转一次,就可以解决问题。
参考代码如下
1 | public static int[] rotateK(int[] datas,int k) |
- 附:源码地址
砍树的人开始学造斧!
问题描述: 返回将一维数组向右旋转k个位置的结果。
比如,一维数组{1,2,3,4,5},k=2时,返回结果是{4,5,1,2,3}。 要求常数级空间复杂度,允许修改原有数组。解法与分析: 使用三旋转:全部旋转一次,前面0到k-1旋转一次,后面k到数组最后一个数旋转一次,就可以解决问题。
1 | public static int[] rotateK(int[] datas,int k) |