540 有序陣列中的單一元素 力扣 c

2021-09-14 02:16:44 字數 687 閱讀 2893

題目:

給定乙個只包含整數的有序陣列,每個元素都會出現兩次,唯有乙個數隻會出現一次,找出這個數。

樣例:

示例 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 因為方案應...