欧洲做r18 cg的网站,齐家网装修公司地址,定制摄影app和摄影网站的区别,做网站租服务器这里是阿川的博客#xff0c;祝您变得更强 ✨ 个人主页#xff1a;在线OJ的阿川 #x1f496;文章专栏#xff1a;OJ刷题入门到进阶 #x1f30f;代码仓库#xff1a; 写在开头
现在您看到的是我的结论或想法#xff0c;但在这背后凝结了大量的思考、经验和讨论 目录 1…
这里是阿川的博客祝您变得更强 ✨ 个人主页在线OJ的阿川 文章专栏OJ刷题入门到进阶 代码仓库 写在开头
现在您看到的是我的结论或想法但在这背后凝结了大量的思考、经验和讨论 目录 1.题目介绍2.题目拆解:3.具体详情4.具体代码 1.题目介绍 难度易 题目练习移动零 题目信息给定一个数组 nums编写一个函数将所有 0 移动到数组的末尾同时保持非零元素的相对顺序。请注意 必须在不复制数组的情况下原地对数组进行操作。 2.题目拆解: 本质上是数组划分、数组分块问题 特点是在制定的标准下把数组划分成若干个区间 解决方法双指针算法利用数组下标来充当指针 3.具体详情 两个指针作用 cur从左往右扫描数组遍历数组 dest已处理的区间内非零元素的最后一个位置即分界线 具体如图1所示 图1 三个区间 具体如图2所示 图2 如何做到 cur从前往后遍历的过程中 1. 遇到零元素 cur 2.遇到非零元素 swapdest 1, cur; dest,cur; 4.具体代码
class Solution {
public:void moveZeroes(vectorint nums) {for(int step -1, cur 0; cur nums.size(); cur)if(nums[cur])swap(nums[step], nums[cur]); }
};好的到此为止啦祝您变得更强 道阻且长 行则将至个人主页在线OJ的阿川大佬的支持和鼓励将是我成长路上最大的动力