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
}
}
}
}
网友评论