프로그래밍/코딩테스트

[LeetCode] 283. Move Zeroes / Swift

turu 2021. 6. 26. 20:29

[문제 보기]

더보기

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

Note that you must do this in-place without making a copy of the array.

 

Example 1:

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

Example 2:

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

 

Constraints:

  • 1 <= nums.length <= 104
  • -231 <= nums[i] <= 231 - 1

 

Follow up: Could you minimize the total number of operations done?

 

https://leetcode.com/problems/move-zeroes/

 

Move Zeroes - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 


투포인터 기법을 이용했다.

 

class Solution {
    func moveZeroes(_ nums: inout [Int]) {
        var p = 0
        var count = 0
        for element in nums {
            if element == 0 {
                count += 1
            } else {
                nums[p] = element
                p += 1
            }
        }
        
        for i in (0..<count) {
            nums[nums.count - count + i] = 0
        }
    }
}
반응형