今天這題用python3做,實在太簡單了,可能用更底層的語言會複雜一些,並附上昨天打卡忘記mark的21題
給定乙個只包含整數的有序陣列,每個元素都會出現兩次,唯有乙個數隻會出現一次,找出這個數。
示例 1:
輸入: [1,1,2,3,3,4,4,8,8]
輸出: 2
示例 2:
輸入: [3,3,7,7,10,11,11]
輸出: 10
python**
class solution:
def singlenonduplicate(self, nums):
for i in range(len(nums)):
a=nums.count(nums[i])
if a == 1:
return nums[i]
break
將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。
示例:輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
python**
注意思路是用迭代器對比數值,**還是帶複雜,太young了
class solution1:
def mergeonelist(self,list1):
iter1=iter(list1)
return next(iter1)
class solution2:
def mergetwolist(self,list2):
iter2=iter(list2)
return next(iter2)
list1=[1,2,4]
list2=[1,3,4]
iter1=iter(list1)
iter2=iter(list2)
s1=solution1()
s2=solution2()
length = 2*len(list1)-2
a=next(iter1)
b=next(iter2)
try:
for i in range(length):
if a < b:
print(a,end='')
a=next(iter1)
elif a>b:
print(b,end='')
b=next(iter2)
else:
print(a,end='')
print(b,end='')
a=next(iter1)
b=next(iter2)
except stopiteration:
1+1
class solution:
def mergetwolists(self, l1: listnode, l2: listnode) -> listnode:
if not l1: return l2 # 終止條件,直到兩個鍊錶都空
if not l2: return l1
if l1.val <= l2.val: # 遞迴呼叫
l1.next = self.mergetwolists(l1.next,l2)
return l1
else:
l2.next = self.mergetwolists(l1,l2.next)
return l2
真的是菜鳥用迭代,高玩用遞迴= = ,遞迴**看懂都太費勁了- - ,經典一看就會,一寫就廢。
**還是要多練習,一萬行標準~
Leecode每日一題 猜字謎
字謎的迷面 puzzle 按字串形式給出,如果乙個單詞 word 符合下面兩個條件,那麼它就可以算作謎底 例如,如果字謎的謎面是 abcdefg 那麼可以作為謎底的單詞有 faced cabbage 和 baggage 而 beefed 不含字母 a 以及 based 其中的 s 沒有出現在謎面中 ...
Leecode每日一題 單調數列
如果陣列是單調遞增或單調遞減的,那麼它是單調的。如果對於所有 i j,a i a j 那麼陣列 a 是單調遞增的。如果對於所有 i j,a i a j 那麼陣列 a 是單調遞減的。當給定的陣列 a 是單調陣列時返回 true,否則返回 false。示例 1 輸入 1,2,2,3 輸出 true 示例...
Leecode每日一題之561陣列拆分
取兩個數之差的絕對值最小。可以先排序然後挑選奇數字置的數字相加即可 我一開始用c語言做的,使用了氣泡排序 選擇排序等。但是都是超出時間限制了。所以改用c 因為裡面有內嵌函式sort,直接一步到胃。1 sort函式可以三個引數也可以兩個引數,必須的標頭檔案 include algorithm 和usi...