leetcode 189

找到了,这题和高级搜索树里面的就地循环移位是一个题。实际上就是一个经典问题,我记得在哪里,却不知道怎么解决。好像也知道一点,就是反转,然后再反转。利用空间局部性,把缓存的作用发挥到极致。注意这里的 k 和 ppt 里面的 m 不是一个东西,另外我们还需要考虑 k 如果比较大会发生什么情况,所以我们可以考虑用 k 对 n 取模,然后就可以算了。就是先对前面的反转,再对后面的反转,最后对整体反转,实际上非常非常简单。我非常不错!

cpp 复制代码
class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int n = nums.size();
        k %= n;
        int m = n - k;
        reverse( nums.begin(), nums.begin() + m );
        reverse( nums.begin() + m, nums.end() );
        reverse( nums.begin(), nums.end() );
    }
};
相关推荐
wuweijianlove2 小时前
算法复杂度的理论边界与实验验证研究的技术3
算法
rm6fEx0Z72 小时前
AUC 与 GAUC:从全局排序到用户内排序的理解
人工智能·算法·机器学习
minji...2 小时前
Linux 多线程(四)线程等待,线程分离,线程管理,C++多线程,pthread库
linux·运维·开发语言·网络·c++·算法
H_BB2 小时前
DFS实现回溯算法
数据结构·c++·算法·深度优先
汀、人工智能2 小时前
[特殊字符] 第17课:滑动窗口最大值
数据结构·算法·数据库架构·图论·bfs·滑动窗口最大值
List<String> error_P2 小时前
蓝桥杯最后冲刺暴力(二)
职场和发展·蓝桥杯
sheeta19982 小时前
LeetCode 每日一题笔记 日期:2025.04.06 题目:874. 模拟行走机器人
笔记·leetcode·机器人
明灯伴古佛2 小时前
面试:Java中乐观锁的实现原理是什么
java·面试·职场和发展
XiYang-DING2 小时前
【LeetCode】232. 用栈实现队列
算法·leetcode·职场和发展