[力扣 Hot100]Day15 轮转数组

题目描述

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
出处

思路

好像是某一年的考研题,原地逆序后k项,再逆序前n-k项,再逆序整个数组即可。空间复杂度O(1),时间复杂度O(n)。要注意k可能比n大,需要对n取余。

代码

cpp 复制代码
class Solution {
private:
    void reverse(vector<int>& nums, int left, int right){
        int t;
        while (left<right)
        {
            t=nums[left];
            nums[left]=nums[right];
            nums[right]=t;
            left++;right--;
        }
        
    }
public:
    void rotate(vector<int>& nums, int k) {
        int n=nums.size();
        k=k%nums.size();
        if(k==n)return;
        reverse(nums, n-k, n-1);
        reverse(nums, 0, n-k-1);
        reverse(nums, 0, n-1);
    }
};
相关推荐
船漏了就会沉16 小时前
后缀自动机(SAM):字符串处理的“万能瑞士军刀”
算法
白白白小纯17 小时前
算法篇—链表的中间节点
c语言·数据结构·算法·leetcode
Frostnova丶17 小时前
(19)LeetCode 54. 螺旋矩阵
算法·leetcode·矩阵
Frostnova丶17 小时前
(18)LeetCode 73. 矩阵置零
算法·leetcode·矩阵
冻柠檬飞冰走茶17 小时前
PTA基础编程题目集 7-11 分段计算居民水费(C语言实现)
c语言·开发语言·算法
得物技术17 小时前
推荐系统体验的数字化突破:得物自动化评测平台的技术实践|AICon 文章整理
算法·架构·llm
VALENIAN瓦伦尼安教学设备18 小时前
转子/行星/平行轴齿轮箱综合故障模拟实验台可复现常见机械问题
大数据·数据库·人工智能·嵌入式硬件·算法
rannn_11118 小时前
【力扣hot100】哈希表专题——从两数之和到最长连续序列
java·算法·leetcode·哈希
小保CPP18 小时前
OpenCV C++基于极值区域滤波算法的场景文本检测(OCR)
c++·人工智能·opencv·算法·计算机视觉·ocr
来一碗刘肉面19 小时前
字符串模式匹配(朴素模式匹配算法与KMP算法)
数据结构·算法