LeetCode 尋找丟失的數字

2021-10-11 21:30:13 字數 539 閱讀 6740

給定乙個包含[0,n]中n個數的陣列nums,找出[0,n]這個範圍內沒有出現在陣列中

的那個數字.

示例 1:

input:nums=[3,0,1]

output:2

示例 2:

input:nums=[0,1]

output:2

因為有2個數字,所有數字都在[0,2]之間內.

示例 3:

input:nums=[9,6,4,2,3,1,5,7]

output:8

解題思路:

方法1利用等差數列求和公式求出總和,然後與陣列的總和做差.

方法2位運算

通過異或進行,a^a=0,a^0=a

#include #include using namespace std;

class solution

int missingornumber(vector& nums);

cout

}

尋找丟失的數字(二)

擴充套件問題二 至多掃瞄一遍序列,求出丟失的兩個數字。不管用什麼方法,可以肯定的是我們至少需要掃瞄一遍序列。因為只能掃瞄一遍,所以先求出 a xor b,再根據結果分類的方法就不適用了。既然我們不能根據某一位分類,那我們能否對所有位進行分類呢?比如,int是32位,我們可以對每一位都分成兩類分別異或...

面試題之尋找丟失的數字

據傳說是ms google等等it名企業的面試題 有一組數字,從1到n,中減少了乙個數,順序也被打亂,放在乙個n 1的陣列裡 請找出丟失的數字,最好能有程式,最好演算法比較快 btw1 有很多種方法的哦,據說o n 的方法就不止一種 btw2 擴充套件問題,如果丟失了2個數字呢?btw3 一定要小心...

MS Google面試題 尋找丟失的數字

題目 有一組數字,從1到n,其中丟失了乙個數字,且順序也被打亂的儲存在乙個 size 為n 1的陣列中 要求 找出丟失的數字,最好能有程式,最好演算法比較快 btw1 有很多種方法哦,據說o n 的方法不止一種 btw2 擴充套件問題,如果丟失兩個,並找出這兩個數字 或者,丟失三個,找出三個中的任意...