leetcode打卡系列 1

2021-09-16 12:17:08 字數 650 閱讀 9538

這道題是leetcode的第三題,也是比較經典的一道。題目說讓找到任意乙個字串的無重複字元的子串。如』abcabcbb』的無重複字元的最長子串是』abc』,所以輸出長為3。

解題的常規思路有以下兩種:

一 暴力列舉

對給定字串進行列舉,找到原始字串的所有子字串(兩層for迴圈即可)。接著對所有的字串進行判斷,看是否無重複字元,然後求出滿足條件的最長子串長度。第一種方法時間複雜度很高,大家可以練練手。

二 滑動視窗法

def

func

(s):

left,res =0,

0 m =

for i in

range

(len

(s))

:if s[i]

notin m:

res =

max(res,i-left+1)

else

:if m[s[i]

]>= left:

left = m[s[i]

]else

: res =

max(res,i-left+1)

m[s[i]

]= i +

1return res

Leetcode 打卡系列 1

題目描述 給定乙個非空且只包含非負的整數組nums,陣列的度定義是指數組裡任一元素出現頻數的最大值。任務 找到與nums擁有相同大小的度的最短連續子陣列,返回其長度 示例 輸入 1,2,2,3,1 輸出 2 思路 用3個字典分別儲存每個元素第一次出現位置 最後一次出現位置和出現次數,最短的陣列就是x...

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...

LeetCode演算法打卡

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