5.LeetCode刷题For Swift·283. Move

2020-12-26  本文已影响0人  富城

1、原题

Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.
Example:

Input: [0,1,0,3,12]
Output: [1,3,12,0,0]

2、思路

3、代码

class Solution {
    func moveZeroes(_ nums: inout [Int]) {
        // 这个问题使用快慢指针,典型问题
        // 先定义一个慢指针
        var j = 0
        for i in 0..<nums.count {
            // 循环过程中遇到不是零的元素,并将这个值移到慢指针的所以数组中
            if nums[i] != 0 {
                nums[j] = nums[i]
                // 快慢指针指的不是同一个元素,就可以将快指针的值置为零
                if i != j {
                    nums[i] = 0
                }
                j+=1
            }
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读