給定乙個包含 [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...