Leetcode做題記錄 209 長度最小的子陣列

2021-10-19 07:20:57 字數 741 閱讀 4661

列舉的方法時間複雜度為o(n^2)

雙指標滑窗時間複雜度為o(n)

class

solution

:def

minsubarraylen

(self, target:

int, nums: list[

int])-

>

int:

#注意題目的條件:給定的陣列中的元素全部都為正整數

#解題方法:雙指標的方法,時間複雜度為o(n)

l =len(nums)

if l ==0:

return

0 left =

0 right =

0 res = l +

1 s =

0while right < l:

s = s + nums[right]

while s >= target:

res =

min(res, right-left+1)

s = s - nums[left]

left = left +

1 right +=

1return

0if res == l +

1else res # 如果陣列中的所有元素相加的和也小於target,那麼意味著res的值不會更新,直接返回的話就會是l + 1,所以這裡需要做出判斷

leetcode做題記錄0010

只是為了記錄一下,不求多快,也不深究。會簡要描述思路,中不寫注釋。如碰到不會做的用了別人 會在部落格中標出。一碰到難度是困難的就不會做了。用動態規劃 dp i j 代表了s的前i個字元和p的前j個字元是否匹配,算上0的話,顯然dp的大小是 s.length 1 p.length 1 dp 0 0 兩...

leetcode做題記錄0014

只是為了記錄一下,不求多快,也不深究。會簡要描述思路,中不寫注釋。如碰到不會做的用了別人 會在部落格中標出。第一遍提交擊敗37 的使用者,一模一樣的 又提交了一遍,擊敗82 的使用者。所以這個到底有啥意義。陣列長度為0或1直接return。寫乙個方法判斷所有字串第num個字元是否相同。找到陣列裡最短...

leetcode做題記錄0050

只是為了記錄一下,不求多快,也不深究。會簡要描述思路,中不寫注釋。如碰到不會做的用了別人 會在部落格中標出。直接乙個乙個乘的話會超時,試過了。這題有點像數學題。3 193 319可以這樣做 3 19 324 21 2 0 32 4 32 1 32 03 3 3 cdot 3 cdot 3 319 3...