給定乙個只包含整數的有序陣列,每個元素都會出現兩次,唯有乙個數隻會出現一次,找出這個數。
示例 1:
輸入: [1,1,2,3,3,4,4,8,8]示例 2:輸出: 2
輸入: [3,3,7,7,10,11,11]注意: 您的方案應該在 o(log n)時間複雜度和 o(1)空間複雜度中執行。輸出: 10
解題思路——
1. 首先觀察題目,這是有序陣列,而且難點是對時間複雜度和空間複雜度有要求。
2. 時間複雜度是logn,第一反應,二分搜尋。
3. 難點是,二分搜尋後怎麼判斷是左半邊還是右半邊。解決方式是通過mid的奇偶性。具體怎麼通過奇偶性判斷,請通過**來理解。
class solution
else if(nums[mid] == nums[mid-1])
else
return nums[mid];
}return nums[left];
}};
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 因為方案應...
540 有序陣列中的單一元素
假設只出現一次的元素位於下標 x,由於其餘每個元素都出現兩次,因此下標 xx 的左邊和右邊都有偶數個元素,陣列的長度是奇數。由於陣列是有序的,因此陣列中相同的元素一定相鄰。對於下標 x左邊的下標 y,如果 nums y nums y 1 nums y nums y 1 則 y一定是偶數 對於下標 x...