blueWind123731 / algorithm_learning

算法与数据结构
0 stars 0 forks source link

283. 移动零 #13

Open blueWind123731 opened 3 years ago

blueWind123731 commented 3 years ago

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

示例:

输入: [0,1,0,3,12] 输出: [1,3,12,0,0]

说明:

必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。

https://leetcode-cn.com/problems/move-zeroes

blueWind123731 commented 3 years ago

时间复杂度:O(n) 空间复杂度:O(1)

var moveZeroes = function(nums) {
    let l=0,r=0;
    while(r<nums.length){
        if(nums[r]===0){
            r++
        }else {
            [nums[l],nums[r]]=[nums[r],nums[l]]
            l++
            r++
        }
    }
};