使用雙指標法
class
solution
:def
merge
(self, nums1: list[
int]
, m:
int, nums2: list[
int]
, n:
int)
->
none
:"""
do not return anything, modify nums1 in-place instead.
"""mid =
i =0 j =
0 t =
0 length1 =
len(nums1)
length2 =
len(nums2)
while i < m and j < n:
if nums1[i]
< nums2[j]:)
i +=
1else:)
j +=
1if i != m:
mid += nums1[i:m]
if j != n:
mid += nums2[j:n]
for i in
range(0
,len
(mid)):
nums1[i]
= mid[i]
複雜度分析: 時間複雜度o(n+m), 空間複雜度o(n+m)
每次將之前的陣列逆序再加上一定的偏移值, 在於原陣列相加即可
class
solution
:def
graycode
(self, n:
int)
-> list[
int]
:if n ==0:
return[0
] result =[0
,1] i =
2while i <= n:
num =2**
(i -1)
mid = result[:]
for j in
range(0
,len
(mid)):
mid[j]
+= num
result += mid[::
-1] i +=
1return result
使用遞迴
# definition for a binary tree node.
# class treenode:
# def __init__(self, val=0, left=none, right=none):
# self.val = val
# self.left = left
# self.right = right
class
solution
:def
maxdepth
(self, root: treenode)
->
int:
if(root ==
none):
return
0return
max(self.maxdepth(root.left)
, self.maxdepth(root.right))+
1
LeetCode騰訊精選練習50 第九天
題目88 合併兩個有序陣列 給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。初始化 nums1 和 nums2 的元素數量分別為 m 和 n 你可以假設 nums1 有足夠的空間 空間大小等於 m n 來儲存 nums2...
LeetCode 第九天(回文數)
leetcode 第九天 9.回文數 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 1...
re刷題第九天
知識點 彙編硬編碼 題目給出了一堆十六進製制,轉換為彙編看下,發現第一句是push 0x666c,之後進行了一些異或,加操作,emmm。看不太懂。想起來push在這裡的十六進製制是0x68,所以把0x68後兩個位元組的內容提取出來就是flag 額。這個題說實話我不明白在考察什麼東西,我tcl。題目是...