非商業,leetcode鏈結附上:
進入正題。
題目:
乙個長度為n-1的遞增排序陣列中的所有數字都是唯一的,並且每個數字都在範圍0~n-1之內。在範圍0~n-1內的n個數字中有且只有乙個數字不在該陣列中,請找出這個數字。
示例:
示例 1:
輸入: [0,1,3]
輸出: 2
示例 2:
輸入: [0,1,2,3,4,5,6,7,9]
輸出: 8
限制:1 <= 陣列長度 <= 10000
**實現:
public int missingnumber(int nums) else}return i;
}//時間複雜度o(logn),空間複雜度o(1)
分析:
根據題意,「遞增排序陣列」,首先考慮二分法查詢目標元素;
目標元素會在值和索引相等的右側陣列出現,因此記錄並更新對應的索引,直到陣列都遍歷完。
--end
0到n 1中缺失的數字
一 題目 乙個長度為n 1的遞增排序陣列中的所有數字都是唯一的,並且每個數字都在範圍0到n 1之內。在範圍0到n 1的n個數字中有且只有乙個數字不在該陣列中,請找出這個數字。二 思路 分析易知,陣列形式如下 如果從頭到尾依次比較值與小標是否相等,時間複雜度為o n 效率低。由於是排序陣列,我們繼續考...
0 n 1中缺失的數字
乙個長度為n 1的遞增排序陣列中的所有數字都是唯一的,並且每個數字都在範圍0 n 1之內。在範圍0 n 1內的n個數字中有且只有乙個數字不在該陣列中,請找出這個數字。分析 因為陣列是排序的,因此陣列中開始的一些數字與它們的下標相同。也就是說,0在下標為0的位置,1在下標為1的位置,以此類推。如果不在...
0 n 1中缺失的數字
題目 乙個長度為n 1的遞增陣列中所有的數字都是唯一的,並且每個數字都在範圍0 n 1之內,在範圍內的n個數字中有且只有乙個數字不在該陣列中,請找出這個數字。第乙個方法先遍歷,求出所有資料的和,再利用公式,找出缺失的資料的值。第二個方法,利用二分查詢,找出缺失的數字。package helen.c ...