LeetCode---Rotate Array

来源:互联网 发布:淘宝店铺的层级和名次 编辑:程序博客网 时间:2024/06/06 20:46

题目大意:给出一个数组和一个数K,要求向右旋转数组k个位置,返回修改后的数组。

算法思想:

1.获取数组的大小n,如果数组为空直接返回。

2,设置一个大小为n缓冲数组,用来记录数组旋转后的结果。

3.利用STL中的rotate_copy算法将旋转后的结果放置在缓冲数组中。

4.将缓冲数组中的结果,赋值到原数组对应的位置。

代码如下:

class Solution {public:    void rotate(vector<int>& nums, int k) {        int n=nums.size();        if(n==0) return;        vector<int> temp(n);        if(k>=n) k=k%n;        rotate_copy(nums.begin(),nums.end()-k,nums.end(),temp.begin());                for(int i=0;i<n;++i){            nums[i]=temp[i];        }    }};


0 0
原创粉丝点击