Scribbling

LeetCode: 268. Missing Number 본문

Computer Science/Coding Test

LeetCode: 268. Missing Number

focalpoint 2022. 1. 4. 14:59

The first solution is using binary search.

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        left, right = 0, len(nums)
        while left < right:
            mid = (left + right) // 2
            cnt = 0
            for num in nums:
                if num <= mid:
                    cnt += 1
            if cnt == mid + 1:
                left = mid + 1
            else:
                right = mid
        return left

 

The second solution is using summation.

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        ret = len(nums) * (len(nums) + 1) // 2
        for num in nums:
            ret -= num
        return ret