leetcode 學習打卡

2021-10-16 05:21:01 字數 2518 閱讀 5238

026-刪除排序陣列中的重複項

033-搜尋旋轉排序陣列

題目描述

**(python)

class

listnode

:def

__init__

(self, x)

: self.val = x

self.

next

=none

class

solution

:def

mergeklists

(self, lists: list[listnode])-

> listnode:

length =

len(lists)

# 邊界情況

if length ==0:

return

none

if length ==1:

return lists[0]

# 分治

mid = length //

2return self.merge(self.mergeklists(lists[

:mid]

), self.mergeklists(lists[mid:length]))

defmerge

(self, node_a, node_b)

: dummy = listnode(

none

) cursor_a, cursor_b, cursor_res = node_a, node_b, dummy

while cursor_a and cursor_b:

# 對兩個節點的 val 進行判斷,直到一方的 next 為空

if cursor_a.val <= cursor_b.val:

cursor_res.

next

= listnode(cursor_a.val)

cursor_a = cursor_a.

next

else

: cursor_res.

next

= listnode(cursor_b.val)

cursor_b = cursor_b.

next

cursor_res = cursor_res.

next

# 有一方的next的為空,就沒有比較的必要了,直接把不空的一邊加入到結果的 next 上

if cursor_a:

cursor_res.

next

= cursor_a

if cursor_b:

cursor_res.

next

= cursor_b

return dummy.

next

題目描述

**(python)

class

solution

:def

removeduplicates

(self, nums: list[

int])-

>

int:

a =0 b =

1while b <

len(nums)

:if nums[a]

== nums[b]

: nums.pop(a)

else

: a +=

1 b +=

1return

len(nums)

題目描述

**(python)

class

solution

:def

search

(self, nums: list[

int]

, target:

int)

->

int:

ifnot nums:

return-1

l, r =0,

len(nums)-1

while l <= r:

mid =

(l + r)//2

if nums[mid]

== target:

return mid

if nums[l]

<= nums[mid]

:if nums[l]

<= target < nums[mid]

: r = mid -

1else

: l = mid +

1else

:if nums[mid]

< target <= nums[

len(nums)-1

]:l = mid +

1else

: r = mid -

1return

-1

LeetCode演算法打卡

475.供暖器 冬季已經來臨。你的任務是設計乙個有固定加熱半徑的供暖器向所有房屋供暖。現在,給出位於一條水平線上的房屋和供暖器的位置,找到可以覆蓋所有房屋的最小加熱半徑。所以,你的輸入將會是房屋和供暖器的位置。你將輸出供暖器的最小加熱半徑。說明 給出的房屋和供暖器的數目是非負數且不會超過 25000...

leetcode打卡系列 1

這道題是leetcode的第三題,也是比較經典的一道。題目說讓找到任意乙個字串的無重複字元的子串。如 abcabcbb 的無重複字元的最長子串是 abc 所以輸出長為3。解題的常規思路有以下兩種 一 暴力列舉 對給定字串進行列舉,找到原始字串的所有子字串 兩層for迴圈即可 接著對所有的字串進行判斷...

leetcode打卡系列 3

給定長度為 n 的整數陣列 nums,其中 n 1,返回輸出陣列 output 其中 output i 等於 nums 中除 nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 def func nums left right output left value...