给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
nums
0
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例 1:
输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]
示例 2:
输入: nums = [0]输出: [0]
提示:
1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1
进阶:你能尽量减少完成的操作次数吗?
/** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */ var moveZeroes = function(nums) { for (let i = 0; i < (nums.length - 1); i++) { for (let j = 0; j < (nums.length - 1); j++) { if (nums[j] === 0) { nums[j] = nums[j+1]; nums[j+1] = 0; } } } return nums; };
/** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */ var moveZeroes = function(nums) { let slow = 0 for (let fast = 0; fast < nums.length; fast++) { if (nums[fast] !== 0) { nums[slow] = nums[fast] slow++ } } nums.fill(0, slow) };
还可以这样:
/** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */ var moveZeroes = function(nums) { nums = nums.sort((a, b) => { if (b === 0) { return -1; } return 0; }); return nums; };
做最厉害的不秃顶程序猿
移动零
LeetCode 热题 100 - 两数之和
盛最多水的容器
三数之和
最长连续序列
在网页中使用 Materialize 实现中文日期选择器
MaterializeCSS轮播组件:构建动态网页内容的利器
在网页中使用 Materialize 实现日期选择器
使用 Materialize 实现图文列表布局
微信小程序开发:实现授权登录,获取用户手机号及用户信息