【发布时间】:2021-12-27 17:58:58
【问题描述】:
我正在研究我在 leetcode 的讨论部分中看到的这个解决方案,但我无法掌握部分逻辑。游戏的名称是将所有零移动到给定数组的末尾,同时保持其他数字的顺序。 j 索引内的增量运算符是我迷路的地方,因为那不是将非零数放在右边吗?
var moveZeroes = function(nums) {
let j = 0
for(let i = 0; i < nums.length; i++) {
if(nums[i] !== 0) {
//storing the index we are iterating on
let n = nums[i]
//changing the index in place to 0
nums[i] = 0
//console.log(nums);
//
nums[j++] = n
console.log(nums);
}
}
return nums;
};
console.log(moveZeroes([0,1,0,3,12]));
【问题讨论】:
-
j++是后缀自增运算符,表示j在将n分配给nums[j]之后自增。相反,如果它是++j,那么j将首先递增,然后nums将使用递增的j进行索引。 -
arr.sort((a, b) => +(a == 0));..? -
nums[j++] = n与nums[j] = n; j += 1;相同
标签: javascript arrays algorithm data-structures