【2019秋冬】【LeetCode】189 旋转数组

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int s = nums.size();
        k %= s;
        if(k==0 || s < 2) return ;
        int time = gcd(s,k);
        for(int i=0; i<time; i++){
            int temp = nums[i];
            int j = i + k;
            while(j%s!=i){
                int temp1;
                temp1 = nums[j%s];
                nums[j%s] = temp;
                temp = temp1;
                j+=k;
                
            }
            nums[i] = temp;
        }
        
    }
    int gcd(int a,int b){
        return b==0 ? a : gcd(b,a%b);
    }
    
};

思路都对,写代码写了一上午
太菜了!!!
复习最大公约数最小公倍数写法

发布了197 篇原创文章 · 获赞 4 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览