yanggengzhen123 / leetcode-group

力扣小组
0 stars 0 forks source link

2022.04.06-第71题-283. 移动零 #73

Open yanggengzhen123 opened 2 years ago

yanggengzhen123 commented 2 years ago

https://leetcode-cn.com/problems/move-zeroes/ 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0]

示例 2: 输入: nums = [0] 输出: [0]

yanggengzhen123 commented 2 years ago
function moveZeroes(nums: number[]): void {
    // 快慢指针
    let fast = 0
    let slow = 0
    for(fast;fast < nums.length;fast++){
        if(nums[fast] !== 0){
            let temp = nums[slow]
            nums[slow] = nums[fast]
            nums[fast] = temp
            slow++
        }
    }
};
icodeish commented 2 years ago
var moveZeroes = function(nums) {

    let j=0;
    for(let i=0;i<nums.length;i++){
        if(nums[i]!==0){
            let tmp=nums[i]  //第一次循环 :当i=2时,  tmp=2
            nums[i]=nums[j]  //  nums[2]=nums[1]
            nums[j++]=tmp    //  nums[0]=nums[2]  j=1
        }
    }
    return nums

};