Leetcode 268 Missing Number

Follow up: Could you implement a solution using only O(1) extra space complexity and O(n) runtime complexity?


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


Input: nums = [9,6,4,2,3,5,7,0,1]
Output: 8

  • Toplama yönteminde 1’den n’e kadar olan sayıların toplamı bulunur ve bu toplamdan elimizdeki listenin toplamı çıkarılır.Bu bize eksik olan sayıyı verecektir.
  • Elimizdeki listeyi XOR layarak eksik olan elemana ulaşabiliriz.
Eksik Eleman =4∧(0∧0)∧(1∧1)∧(2∧3)∧(3∧4)
             =(4∧4)∧(0∧0)∧(1∧1)∧(3∧3)∧2
             =0∧0∧0∧0∧2
             =2

  class Solution:
    def missingNumber(self, nums):
        expected_sum = len(nums)*(len(nums)+1)//2
        actual_sum = sum(nums)
        return expected_sum - actual_sum
class Solution:
 def missingNumber(nums):
    a = 0
    for i in nums:
        a ^= i
    return a