(LeetCode) Move Zeroes

Move Zeroes

  • 분류 : Array
  • 난이도 : Easy

Problem

Given an integer array nums, move all 0‘s to the end of it while maintaining the relative order of the non-zero elements.

Example 1

1
2
Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]

Example 2

1
2
Input: nums = [0]
Output: [0]

Constraints

  • 1 <= nums.length <= 10^4
  • -2^31 <= nums[i] <= 2^31 - 1

Solution

Exapnder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
fun moveZeroes(nums: IntArray): Unit {
var index = 0
for (i in nums.indices) {
if (nums[i] != 0) {
nums[index++] = nums[i]
}
}

while (index < nums.size) {
nums[index++] = 0
}
}
}

Point of Thinking

  • nums 안에서 끝내야하므로 순회를 숙명
  • 0을 제외한 나머지 숫자들의 순서는 유지해주어야 하므로, sort 및 compareBy 등의 고민 없이 단순하게 풀이.