1.移动零
题目:给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
思路:第一个思路,就是遇到0,截取然后放在数组最后面
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var moveZeroes = function(nums) {
let length = nums.length;
let start = 0;
let i = 0;
while (start < length) {
if (nums[i] === 0) {
const item=nums.splice(i, 1)
nums.push(item);
} else {
i++;
}
start++;
}
return nums;
};
换一种思路,双指针法。
第一个指针记录当前遍历的元素,第二个指针记录非零元素。。如果当前元素是非0元素,就把当前元素和非零元素指针上的值交换。
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var moveZeroes = function(nums) {
let i = 0;
let index =