leetcode刷題筆記 第一天

2021-09-18 06:58:54 字數 1198 閱讀 7171

題目說明: 給定乙個 haystack 字串和乙個 needle 字串,在 haystack 字串中找出 needle 字串出現的第乙個位置 (從0開始)。如果不存在,則返回 -1。

解題思路: 首先判斷needle是否在haystack中,如果存在則返還needle所在位置。如果不存在,則返還-1。

def strstr(haystack,needle):

if needle == "":

return 0

if needle in haystack:

return haystack.index(needle)

return -1

特別註解: 題目中特別提到,如果needle是空字串,則返還0。作者剛開始沒有新增needle為空的情況,但結果依然正確,後經朋友提醒發現是題目正好要求返還為0,如果返還其他值則出現錯誤。

討論區思路與解法

思路:通過一次迴圈,匹配相同值的位置,同時這個解法迴圈的長度減少了一定的計算量。但是討論區這個解法和作者自己剛開始犯一樣的沒毛病,沒有額外的新增條件。

def strstr(haystack,needle):

for i in range(0,len(haystack) - len(needle) + 1):

if haystack[i:len(needle)] == needle:

return i

return -1

題目說明:給定乙個整數陣列 nums ,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。

解題思路:剛開始並無解題思路,看到討論區的解法,才嘗試著寫了乙個。

def maxsubarray(nums):

for i in range(1,len(nums)):

nums[i] = max(nums[i]+nums[i-1], nums[i])

return max(nums)

特別註解:無

討論區思路與解法:討論區暫未發現比較好的**,就不寫了。

leetcode刷題第一天

給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。class solution def addtwonumbers se...

第一天刷題

給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例1 輸入 l1 2 4,3 l2 5 6,4 輸出...

刷leetcode的第一天

1 類和例項 類是抽象的模板 例是根據類建立出來的乙個個具體的 物件 例 class student object bart student bart main.student object at 0x10a67a590 0x10a67a590是個記憶體位址 student bart是個變數 stu...