283. 移动零

  • 题目

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

  • 代码
    • splice+push
function moveZeroes(arr) { let count = 0; //用count来防止死循环 for (let i = 0; i < arr.length - count; i++) { while (arr[i] === 0) { //一直对i=1判断,直到它的值不是0 //优先遍历完while循环 ,拿到最终的count 跳出for循环换。不能用if,if只能取到当前count. 反例【0,0,1】 arr.splice(i, 1); arr.push(0); count++; } } return arr; }
  • 快慢指针
var moveZeroes = function (nums) { var n = nums.length var k = 0//慢指针 for (let i = 0; i < n; i++) { if (nums[i] != 0) { nums[k] = nums[i]//k从头慢慢放不为0的数 k++ } } for (let i = k; i < n; i++) { nums[i] = 0 //剩下的置为0 } return nums };

__EOF__

本文作者衣囧~
本文链接https://www.cnblogs.com/user-yi/p/16756772.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   衣囧~  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示