以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - JavaScript 代码题
168. 移动0到最后
一种解法如下:
function moveZeros(nums) { let i = 0; for (let j = 0; j < nums.length; j++) { if (nums[j] !== 0) { nums[i] = nums[j]; i++; } } for (let k = i; k < nums.length; k++) { nums[k] = 0; }}
时间复杂度为O(n),空间复杂度为O(1)。算法使用了双指针,不借助额外的数组空间,遍历一遍数组,依次将非0元素放到数组前面,并用i记录放置位置;第二次遍历数组,将i到数组结尾的元素都赋值为0就可以了。