[LeetCode] 283. Move Zeroes(Kotlin)
틀린 풀이
- 시간 초과
- 반복문 내부에 반복문이 들어가, 최악의 경우 시간복잡도 = O(10^4 * 10^4)
class Solution {
fun moveZeroes(nums: IntArray): Unit {
var indexStart = 0
var indexEnd = nums.size-1
while(indexStart < indexEnd){
if(nums[indexStart] == 0){
for(i in indexStart .. indexEnd-1){
nums[i] = nums[i+1]
}
nums[indexEnd--] = 0
}
}
}
}
풀이
class Solution {
fun moveZeroes(nums: IntArray): Unit {
var index = 0
var zeroCount = 0
for(i in 0 until nums.size){
if(nums[i] != 0) nums[index++] = nums[i]
else zeroCount++
}
for(i in 0 until zeroCount){
nums[nums.size-1-i] = 0
}
}
}