news 2026/8/16 12:28:53

leetcode 189轮转数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 189轮转数组
class Solution { public: void rotate(vector<int>& nums, int k) { int n = nums.size(); vector<int>res(n,0); for(int i=0;i<n;i++){ res[(i+k)%n] = nums[i]; } nums = res; } };

这段代码的核心思路是:先把每个元素放到旋转后的新位置,再把结果赋值回原数组。

例如原数组:

nums = {1,2,3,4,5,6,7}; k = 3;

数组长度:

n = 7;

创建一个临时数组:

vector<int> res(n, 0);

然后遍历原数组,把原来下标为i的元素放到:

(i + k) % n

这个新位置中。例如:

nums[0] = 1

原下标是0,右移 3 位后:

(0 + 3) % 7 = 3

所以:

res[3] = 1;

再比如:

nums[5] = 6

新下标:

(5 + 3) % 7 = 1

所以:

res[1] = 6;

这里% n的作用就是超过数组末尾后重新绕回数组开头

全部移动完成后:

res = {5,6,7,1,2,3,4};

最后:

nums = res;

把旋转后的结果整体赋值回nums。因为nums是引用参数:

vector<int>& nums

所以原数组也会真正被修改。

可以直接记成一句话:

原位置i的元素,右移k位后的新位置是(i+k)%n,全部放进res后,再执行nums = res

题解2:翻转数组

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); } };
nums = "----->-->"; k =3 result = "-->----->"; reverse "----->-->" we can get "<--<-----" reverse "<--" we can get "--><-----" reverse "<-----" we can get "-->----->" this visualization help me figure it out :)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/16 12:25:11

AI工作流引擎:从模型能力到业务流程重塑的工程实践

你有没有想过&#xff0c;为什么一个名为“River AI”的初创公司&#xff0c;能拿到由General Catalyst领投的11亿美元巨额融资&#xff1f;这可不是一笔小数目&#xff0c;尤其是在当前AI投资日趋理性、市场对“讲故事”项目愈发警惕的背景下。 这背后传递的信号&#xff0c;…

作者头像 李华
网站建设 2026/8/16 12:18:56

Electron应用路径管理:app.getPath()核心用法与最佳实践

1. 项目概述&#xff1a;从“找不到文件”到精准掌控路径 如果你正在用 Electron 开发桌面应用&#xff0c;大概率遇到过这类问题&#xff1a;打包后的应用&#xff0c;用户保存的配置文件不知道存哪儿去了&#xff1b;或者你想读取应用自身的日志&#xff0c;却因为开发环境和…

作者头像 李华
网站建设 2026/8/16 12:18:47

大模型参数量与效果平衡:从边际效益递减到工程选型实战

1. 从“大力出奇迹”到“精打细算”&#xff1a;大模型参数量竞赛的冷思考 最近和几个做AI应用落地的朋友聊天&#xff0c;大家不约而同地提到了一个共同的困惑&#xff1a;面对市面上层出不穷的大模型&#xff0c;从几百亿到上万亿参数&#xff0c;从闭源的GPT-4到开源的Llama…

作者头像 李华
网站建设 2026/8/16 12:17:45

OpenClaw本地AI智能体框架:从部署到自定义技能开发全指南

1. 项目概述&#xff1a;为什么OpenClaw值得你投入时间&#xff1f; 最近在AI智能体这个圈子里&#xff0c;OpenClaw这个名字被讨论得越来越频繁。如果你关注过LlamaIndex、LangChain这些框架&#xff0c;或者尝试过在本地部署一个能帮你处理邮件、总结文档的AI助手&#xff0c…

作者头像 李华
网站建设 2026/8/16 12:07:17

彻底解决apt-get update报错:从清华源404到系统级排查指南

1. 问题概述&#xff1a;当 sudo apt-get update 遇上清华源 如果你在 Ubuntu 或 Debian 这类基于 APT 包管理系统的 Linux 发行版上工作&#xff0c;那么 sudo apt-get update 这条命令对你来说就像呼吸一样自然。它的作用是刷新本地软件包索引&#xff0c;从你配置的软件…

作者头像 李华
网站建设 2026/8/16 12:01:16

构建下一代多模态深度研究智能体:从视频理解到自主分析

1. 项目概述&#xff1a;从“看视频”到“研究视频”的范式跃迁 如果你和我一样&#xff0c;经常需要从海量的视频资料里挖掘信息——无论是为了学术研究、市场分析、产品调研&#xff0c;还是内容创作——那你一定体会过那种“望洋兴叹”的无力感。面对动辄几十分钟的讲座录像…

作者头像 李华