丟失的數字

2021-10-11 23:40:04 字數 850 閱讀 9332

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

高階:你能否實現線性時間複雜度、僅使用額外常數空間的演算法解決此問題?

示例 1:

輸入:nums = [3,0,1]

輸出:2

解釋:n = 3,因為有 3 個數字,所以所有的數字都在範圍 [0,3] 內。2 是丟失的數字,因為它沒有出現在 nums 中。

示例 2:

輸入:nums = [0,1]

輸出:2

解釋:n = 2,因為有 2 個數字,所以所有的數字都在範圍 [0,2] 內。2 是丟失的數字,因為它沒有出現在 nums 中。

示例 3:

輸入:nums = [9,6,4,2,3,5,7,0,1]

輸出:8

解釋:n = 9,因為有 9 個數字,所以所有的數字都在範圍 [0,9] 內。8 是丟失的數字,因為它沒有出現在 nums 中。

示例 4:

輸入:nums = [0]

輸出:1

解釋:n = 1,因為有 1 個數字,所以所有的數字都在範圍 [0,1] 內。1 是丟失的數字,因為它沒有出現在 nums 中。

int

missingnumber

(int

* nums,

int numssize)

else

}return j;

}

心得:這道題的思想主要是遍歷陣列,j=0開始比較,陣列中遇到和j相同的元素時使j++,i=0;不相等時i++;當陣列遍歷結束時還沒有找到和j相等的元素,說明j就是缺少的那個數字。

丟失的數字

丟失的數字 題目描述 給定乙個包含 0,n 中 n 個數的陣列 nums 找出 0,n 這個範圍內沒有出現在陣列中的那個數。示例說明 輸入 nums 3,0,1 輸出 2 解釋 n 3,因為有 3 個數字,所以所有的數字都在範圍 0,3 內。2 是丟失的數字,因為它沒有出現在 nums 中。輸入 n...

找出丟失的數字

有一組數字,從1到n中減少了乙個數,順序也被打亂了,放在乙個n 1的陣列裡,請找出丟失的數字。1 用1 2 n 即n n 1 2 減去當前輸入資料的總和。時間複雜度為o n 空間複雜度o 1 缺點是容易溢位。緩解溢位的方法,求1 2 n的時候,邊加邊減。假如陣列為a,那麼這可以這麼計算1 a 0 2...

找出丟失的數字

標籤 演算法 擴充套件面試儲存 2011 11 04 07 02 1232人閱讀收藏 舉報 演算法 algorithm 111 有一組數字,從1到n中減少了乙個數,順序也被打亂了,放在乙個n 1的陣列裡,請找出丟失的數字。1 用1 2 n 即n n 1 2 減去當前輸入資料的總和。時間複雜度為o n...