題目:
給定乙個只包含整數的有序陣列,每個元素都會出現兩次,唯有乙個數隻會出現一次,找出這個數。
樣例:
示例 1:
輸入: [1,1,2,3,3,4,4,8,8]
輸出: 2
示例 2:
輸入: [3,3,7,7,10,11,11]
輸出: 10
注意:您的方案應該在 o(log n)時間複雜度和 o(1)空間複雜度中執行。
思路:
要求要在o(log n)和o(1)執行,感覺蠻難的,我這個方法並不算好,只能說勉強實現,力扣上能過,耗時16ms,屬實是個弟弟。嘗試想過用二分,但做出來也是16ms,只是記憶體消耗從9.3m變成了9.1m,少了0.2m**多了一堆。肯定是我二分的方法不對orz。簡單說下思路,由於是有序陣列,不用考慮排序問題,我直接從第乙個開始和後面乙個比較,一旦相等,就跳躍兩個數字再次進行判定,因為單出來的那個數的位置必然是單的,遍歷判斷就行了,弟弟見解。
我的**:
class solution
return nums[m];}};
540 有序陣列中的單一元素
給定乙個只包含整數的有序陣列,每個元素都會出現兩次,唯有乙個數隻會出現一次,找出這個數。示例 1 輸入 1,1,2,3,3,4,4,8,8 輸出 2示例 2 輸入 3,3,7,7,10,11,11 輸出 10注意 您的方案應該在 o log n 時間複雜度和 o 1 空間複雜度中執行。解題思路 1....
540 有序陣列中的單一元素
給定乙個只包含整數的有序陣列,每個元素都會出現兩次,唯有乙個數隻會出現一次,找出這個數。示例 1 示例 2 注意 您的方案應該在 o log n 時間複雜度和 o 1 空間複雜度中執行。1.令 index 為 single element 在陣列中的位置。在 index 之後,陣列中原來存在的成對狀...
540 有序陣列中的單一元素
給定乙個只包含整數的有序陣列,每個元素都會出現兩次,唯有乙個數隻會出現一次,找出這個數。注意 您的方案應該在 o log n 時間複雜度和 o 1 空間複雜度中執行。示例 1 輸入 1,1,2,3,3,4,4,8,8 輸出 2 示例 2 輸入 3,3,7,7,10,11,11 輸出 10 因為方案應...