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