题目描述
解题思路
代入情景:有12本书,其中有6本是一套,其余为杂书,怎么样方便又快速地将书排好?
相比于找到6本书重新放置【创建新的数组
】,我们更倾向于把杂书往后面移动,一套的书往前面移动【在原数组中操作
】,那么如何实现呢?【很容易想到:替换
】
- 我们设定两个指针,一个表示正确的顺序
cur
,一个表示当前书的索引index
,如果书的一套里面的,就去占cur指向的位置,如果不是,就暂时搁置,等找到下一本再来替换; - 确定好6本书之后,书架后面的位置要用杂书填充
代码实现
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var moveZeroes = function(nums) {
let cur = 0;
for (let i = 0; i < nums.length; i++) {
if (nums[i] != 0) {
nums[cur] = nums[i];
cur++;
}
}
for (let j = cur; j < nums.length; j++) {
nums[j] = 0;
}
return nums;
};