給定乙個包含 0, 1, 2, …, n 中 n 個數的序列,找出 0 … n 中沒有出現在序列中的那個數。
示例 1:
輸入: [3,0,1]示例 2:輸出: 2
輸入: [9,6,4,2,3,5,7,0,1]說明:輸出: 8
你的演算法應具有線性時間複雜度。你能否僅使用額外常數空間來實現?
題解1:
排序進行查詢,如果缺失數字在中間,則return i,如果缺失數字在最後,則return陣列最後數字加1.
時間和記憶體消耗為:
**為:
class
solution
}return nums[nums.length-1]
+1;}
}
題解2:
看了官方的題解,發現可以用求和公式去做,因為就缺少乙個數字,對前n項求和減去陣列中的數字即得答案。
時間和記憶體消耗為:
**為:
class
solution
return sum;
}}
題解3:
數字自己與自己異或結果為0,根據這個可以採用異或的方法。除了缺失數字,其餘各個數字均與陣列下標對應相同。
時間和記憶體消耗為:
**為:
class
solution
return ans;
}}
牛客網刷題 缺失數字
從0,1,2,n這n 1個數中選擇n個數,組成有序陣列,找出這n個數中缺失的那個數,要求o n 盡可能小。輸入描述 輸入乙個陣列 0 n 輸出描述 輸出缺失的數字 輸入 0,1,2,3,4,5,7 輸出 6通過迴圈 通過數學的思路,1 n的和為 n n 1 2 通過異或的特性,計算結果 相同的數字異...
LeetCode刷題 374 猜數字大小
猜數字遊戲的規則如下 每輪遊戲,我都會從 1 到 n 隨機選擇乙個數字。請你猜選出的是哪個數字。如果你猜錯了,我會告訴你,你猜測的數字比我選出的數字是大了還是小了。你可以通過呼叫乙個預先定義好的介面 int guess int num 來獲取猜測結果,返回值一共有 3 種可能的情況 1,1 或 0 ...
Leetcode刷題05 丟失的數字
給定乙個包含 0,n 中 n 個數的陣列 nums 找出 0,n 這個範圍內沒有出現在陣列中的那個數。高階 你能否實現線性時間複雜度 僅使用額外常數空間的演算法解決此問題?示例 1 輸入 nums 3,0,1 輸出 2 解釋 n 3,因為有 3 個數字,所以所有的數字都在範圍 0,3 內。2 是丟失...