美文网首页
5.LeetCode刷题For Swift·283. Move

5.LeetCode刷题For Swift·283. Move

作者: 富城 | 来源:发表于2020-12-26 09:25 被阅读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
            }
        }
    }
}

相关文章

网友评论

      本文标题:5.LeetCode刷题For Swift·283. Move

      本文链接:https://www.haomeiwen.com/subject/eplynktx.html