[LeetCode] Move Zeroes

題目:Move Zeroes
難度:Easy

注意,題目是說照原本順序排列,並不需要由小到大排列

程式邏輯:

  1. 設定兩個 pointer,p1 指向 nums[0],p2 指向 nums[1]
  2. 如果 p1 不等於 0,則移動 p1
  3. 如果 p1 等於 0,則移動 p2,直到 p2 找到不等於 0 的數字
  4. p2 找到不等於 0 的數字,p1、p2 交換
  5. 持續步驟3、4,直到 p2 遍歷整個矩陣
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Solution {
public void MoveZeroes(int[] nums) {
int p1 = 0;
for (int p2 = 1; p2 < nums.Length; p2++)
{
if(nums[p1] == 0)
{
if(nums[p2] == 0)
{
continue;
}
else
{
nums[p1] = nums[p2];
nums[p2] = 0;
}
}

p1++;
}
}
}

Comments