9.4 練習
基礎難度
268. Missing Number
Single Number 的變種題。除了利用二進位,也可以使用高斯求和公式解決。
題解
問題描述
給定一個包含從 0
到 n
的 n
個不同整數的陣列 nums
,找出缺失的那個數字。
範例
輸入: nums = [3,0,1]
輸出: 2
輸入: nums = [0,1]
輸出: 2
解題思路
✅ 方法 1:數學公式(高效又簡潔)
整數 0
到 n
的總和為:
- 將
nums
所有元素加總後,用上面公式減去即可得出缺失的數字。
Python 範例程式碼:數學公式
class Solution:
def missingNumber(self, nums: List[int]) -> int:
n = len(nums)
expected = n * (n + 1) // 2
return expected - sum(nums)
- 時間複雜度:(遍歷一次計算總和)
- 空間複雜度: