恢复旋转排序数组

来源:互联网 发布:小米3支持4g网络吗 编辑:程序博客网 时间:2024/04/29 07:58

难!

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();            }        }    }};


0 0