leetcode189.轮转数组
作者:互联网
我用的方法是新开一个数组来保存,然后再用assign函数复制到原函数中,注意该函数void类型的,所以不能直接返回新函数。
更好的方法:
先将整个数组左右翻转,然后根据k分别反转左右两部分,用双指针进行swap
class Solution { public: void reverse(vector<int>& nums, int start, int end) { while (start < end) { swap(nums[start], nums[end]); start += 1; end -= 1; } } void rotate(vector<int>& nums, int k) { k %= nums.size(); reverse(nums, 0, nums.size() - 1); reverse(nums, 0, k - 1); reverse(nums, k, nums.size() - 1); } };
标签:轮转,reverse,nums,int,start,数组,end,size,leetcode189 来源: https://www.cnblogs.com/h694879357/p/15808375.html