地址:189. 轮转数组 - 力扣(LeetCode) (leetcode-cn.com)
要求:空间复杂度为O(1)
有第一个实例知:
反转后的数组:(0-(k%n-1)) 反转 + ((k%n)- (n-1))反转后等于原数组反转
故解决方法为:
先把原数组进行反转,然后(0-(k%n-1)) 反转 + ((k%n)- (n-1))反转
class Solution {
public:
void rotate(vector<int>& nums, int k) {
int n = nums.size();
reverse(nums,0,n-1);
reverse(nums,0,k%n - 1);
reverse(nums,k%n , n-1);
}
void reverse(vector<int> & nums , int start ,int end){
while (start < end){
swap(nums[start] , nums[end]);
end--;
start++;
}
}
};
最后
以上就是失眠羊最近收集整理的关于轮转数组(NB方法)的全部内容,更多相关轮转数组(NB方法)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复