Re: [閒聊] 每日LeetCode

作者: umi0912umi (UMI)   2023-02-21 10:50:00
540. Single Element in a Sorted Array
題目:
給一個排列過的int陣列,裡面的元素都正好出現2次,
除了某一元素只會出現一次,找出他並回傳他的值,
需要在O(logn)時間及O(1)空間內完成
Example 1:
Input: nums = [1,1,2,3,3,4,4,8,8]
Output: 2
Example 2:
Input: nums = [3,3,7,7,10,11,11]
Output: 10
思路:
應該要用二元搜尋做
但我直接用for
我就爛
因為nums[i]會等於nums[i+1]
直到單一的元素出現
找到他回傳就好
=================================
python code :
class Solution:
def singleNonDuplicate(self, nums: List[int]) -> int:
n = len(nums)
for i in range(0, n, 2) :
if i+1 < n and nums[i+1] != nums[i] :
return nums[i]
return nums[i]
作者: Rushia (みけねこ的鼻屎)   2023-02-21 10:51:00
你時間複雜度沒達標阿 等於沒求得解
作者: umi0912umi (UMI)   2023-02-21 10:59:00
不過這樣也給過 好神奇XDDhttps://i.imgur.com/gtIS86N.png
作者: Rushia (みけねこ的鼻屎)   2023-02-21 11:01:00
LC有些題目本來就是因為有時間和空間複雜度限制才難

Links booklink

Contact Us: admin [ a t ] ucptt.com