leetcode: 26. Remove Duplicates from Sorted Array

kldaji·2021년 12월 16일
1

leetcode

목록 보기
10/56

문제링크

풀이1

예시

  • input : [0, 0, 1]
  • 0, 0 : 중복! (repeat = 1)
  • 0, 1 ; nums[2 - 1] = nums[2] -> [0, 1, 1]
  • return 3 - 1
class Solution {
    fun removeDuplicates(nums: IntArray): Int {
        var repeat = 0
        for (i in 1 until nums.size) {
       	    // 중복이 일어난 횟수 체크
            if (nums[i] == nums[i - 1]) repeat++
            // 현재 인덱스 - 중복이 일어난 횟수
            else nums[i - repeat] = nums[i]
        }
        return nums.size - repeat
    }
}

풀이2

예시

  • input : [0, 0, 1]
  • 0 > nums[1 - 1] -> false
  • 0 > nums[1 - 1] -> false
  • 1 > nums[1 - 1] -> true, nums[1++] = 1
  • return 2
class Solution {
    fun removeDuplicates(nums: IntArray): Int {        
        val size = nums.size
        if (size == 0) return 0
        var index = 1
        for (num in nums) {
            // 증가하는 경우만 확인
            if (num > nums[index - 1]) {
                nums[index++] = num
            }
        }
        return index
    }
}
profile
다양한 관점에서 다양한 방법으로 문제 해결을 지향하는 안드로이드 개발자 입니다.

0개의 댓글