题目如下:
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。题目链接
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
解题思路
运用双指针解出该题,设置start指向数组头部,设置end指向数组尾端,当头尾相遇时程序结束
var moveZeroes = function(nums) {
var start=0; //数组头
var end=nums.length-1; //数组尾
while(start<end){
if(nums[start]===0){ //如果数组头的元素为0
nums.splice(start,1); //删除这个0元素
nums.push(0); //并在数组尾部推入0
end--; //因为数组尾部被0占入,所以end减1
start-- //因为头部0元素被删除,所以start减1
}
start++;
}
};