Algorithm/Online judge

[LeetCode] Array > Single Number

민철킹 2021. 5. 6. 16:08

leetcode.com/explore/interview/card/top-interview-questions-easy/92/array/549/

 

Explore - LeetCode

LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore.

leetcode.com


풀이

배열을 오름차순으로 정렬하여 현재의 수와 다음 수를 비교, 같다면 반복횟수를 +1 해줌.

만약 다르고 반복횟수 또한 1이라면 그것은 Single Number

다르지만 반복횟수가 1보다 크면 Single Number가 아니므로 반복횟수를 1, 현재 수를 다음수로 다시 초기화

 

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        nums.sort()
        current_num = nums[0]
        check_single = 1
        for i in range(1, len(nums)):
            if nums[i] != current_num:
                if check_single == 1:
                    return current_num
                check_single = 1
                current_num = nums[i]
            else:
                check_single += 1
        return current_num
반응형