恢复旋转排序数组
2016-03-08 17:22
337 查看
难!
class Solution {
public:
int getGCD(int a, int b) {
if (a % b == 0) {
return b;
}
return getGCD(b, a % b);
}
void recoverRotatedSortedArray(vector<int> &nums) {
// write your code here
int i = 1;
while(nums[i-1] <= nums[i]){
i++;
}
int temp;
int offset = i;
offset = nums.size()-offset;
int gcd = getGCD(offset,nums.size());
for(int i = 0;i < gcd;i++){
int next = (i+offset)%nums.size();
while(next != i){
temp = nums[i];
nums[i] = nums[next];
nums[next] = temp;
next = (next+offset)%nums.size();
}
}
}
};
class Solution {
public:
int getGCD(int a, int b) {
if (a % b == 0) {
return b;
}
return getGCD(b, a % b);
}
void recoverRotatedSortedArray(vector<int> &nums) {
// write your code here
int i = 1;
while(nums[i-1] <= nums[i]){
i++;
}
int temp;
int offset = i;
offset = nums.size()-offset;
int gcd = getGCD(offset,nums.size());
for(int i = 0;i < gcd;i++){
int next = (i+offset)%nums.size();
while(next != i){
temp = nums[i];
nums[i] = nums[next];
nums[next] = temp;
next = (next+offset)%nums.size();
}
}
}
};
相关文章推荐
- 推荐一下我的个人博客:业余草-www.xttblog.com
- 20160308 灯塔数量
- LVM之一
- R语言-回归分析相关函数
- 虚拟机环境下部署Hadoop开发环境问题集锦
- VS2015快捷键大全
- 【LeetCode】67. Add Binary
- ios面试笔试题
- Spring AOP 完成日志记录
- NSObject的load和initialize方法
- NetBeans8 类编缉器及控制台中文乱码解决
- 0x05: post 守护进程(deamon) json 任务调度
- 原创《分享(Angular 和 Vue)按需加载的项目实践优化方案》
- 2016年需要读的一些书籍
- MFC文件操作
- Oracle函数索引
- VC++动态链接库(DLL)编程深入浅出(zz)
- Java解析Json小例子
- eclipse 配置黑色主题
- javascript对结点的增、删、改