Fork me on GitHub

Move Zeroes

题目介绍

LeetCode 283. Move Zeroes,题目的意思在不复制数组的情况下,用最少的操作将 0 移到最后。

解题思路

一个移动的 i pointer(初始值为 0),遍历数组发现非 0 元素,则将对应 i 的元素赋值为当前遍历的值。遍历完成后,比较 i 和数组长度,将剩余元素复制为 0 即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
func moveZeroes(_ nums: inout [Int]) {
var i = 0
for num in nums {
if num != 0 {
nums[i] = num
i += 1
}
}
if i < nums.count {
for zeroIndex in i..<nums.count {
nums[zeroIndex] = 0
}
}
}
}

版权声明



Ivan’s Blog by Ivan Ye is licensed under a Creative Commons BY-NC-ND 4.0 International License.
叶帆创作并维护的叶帆的博客博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证

本文首发于Ivan’s Blog | 叶帆的博客博客( http://yeziahehe.com ),版权所有,侵权必究。

本文链接:http://yeziahehe.com/2017/10/13/MoveZeroes/