思路描述:假設 0~n-1 中沒有數字 i ,那么這 n - 1 個數字的和為 sum = n*(n-1)/2 - i,那么 i = n*(n-1)/2 - sum。
其實我們可以注意到,從缺失的數字 i 開始下標和數值不相等
前兩種做法時間復雜度均為 O(n),有沒有更優的做法?由第二種做法我們知道,如果 k == nums[k],那么缺失的數字一定在 k 右邊,如果 k != nums[k],那么缺失的數字要么為 k 要么在 k 左邊;這個很類似於二分查找,我們也可以使用二分的思想去優化時間復雜度。
作者:yizhe-shi
鏈接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof/solution/c-onolgnfang-fa-jie-da-by-yizhe-shi/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。