Rotate Array
来源:互联网 发布:mac软件删除不彻底 编辑:程序博客网 时间:2024/05/17 22:17
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7]
is rotated to [5,6,7,1,2,3,4]
.
先翻转数组前n-k的部分,然后翻转数组后面k个数字,然后翻转整个数组。即:
[4,3,2,1,5,6,7],[4,3,2,1,7,6,5],
[5,6,7,1,2,3,4]
class Solution {public: void rotate(int nums[], int n, int k) { k%=n;//处理K大于n的情况 if(k<=0)return; if(n<=1)return; revert(nums,0,n-k-1); revert(nums,n-k,n-1); revert(nums,0,n-1); } void revert(int nums[],int begin,int end){ for(int i=begin,j=end;i<=j;i++,j--){ int temp=nums[i]; nums[i]=nums[j]; nums[j]=temp; } } };
0 0
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- rotate array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- Rotate Array
- HashSet、TreeSet及泛型
- 解决 windows 8.1 无线网络 连接受限
- 一行盒子,数组表示链表
- 汉诺塔递归结构
- 第五天工作总结
- Rotate Array
- 杭电第5162题----jump jump
- PRKP-1001,CRS-0215 rac 集群无法启动数据库和实例
- cocos2dx菜单重叠按钮实现按层优先选择及透明过滤
- 非递归遍历二叉树
- (蓝桥杯题)基础练习 矩形面积交
- 日志缓冲区(redo log buffer)及日志写进程(LGWR)剖析
- 开心的小明
- sizeof()用法汇总