Rotate Array(C++旋轉數組)

解題思路:

記得對k取模,藉助輔助vector

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        vector<int > b;
        k = k%nums.size();
        int dis = nums.size()-k,j=0,tag=0;
        for (int i=0;i<nums.size();i++) {
        	j = i+dis;	
        	if (j>=nums.size()) {
        		tag = i;
        		while(i<nums.size() && i<dis) {
        			b.push_back(nums[i]);
        			i++;
				}
				break;
			} else {
				if (i<dis) {
					b.push_back(nums[i]);
				}
				nums[i]=nums[j];
			}
        }
        for (int i=0;i<b.size();i++) {
            nums[i+tag]=b[i];
        }
        
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章