LeetCode50題第九天

2021-10-16 17:32:09 字數 1761 閱讀 4182

使用雙指標法

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。題目是...