1922.統計好數字的數目
class Solution:
def countGoodNumbers(self, n: int) -> int:
1.創建一個Solution類
2.定義一個countGoodNumbers函數
3.該函數接受自身和一個整數n作為輸入
4.該函數會返回一個整數 以-> int作為標示
5.提前定義MOD防止溢出
6.幕運算使用**,(底數)**(指數);求余數使用%;異或和使用^
7.python內置函數pow(a,b,MOD)快速冪運算即a ** b % MOD,可降低復雜度為log b
5.最長回文子串
longestPalindrome(self, s: str) 中,self 是類方法的第一個參數,表示該方法是類的一個成員方法(即實例方法)。這個方法是定義在類中的,因此它需要接收一個類實例(self)來訪問類的屬性或調用其他方法。
而 expandAroundCenter(left: int, right: int) 則是一個普通的函數(通常可以定義在類的外部,或者類的方法中),不需要 self 參數。它是一個獨立的函數,接收兩個整數參數 left 和 right,用于執行某種操作。
longest=""
for i in range(len(s)):
result1=ExpendAroundCenter(i,i)
result2=ExpendAroundCenter(i,i+1)
longest=max(longest,result1,result2,key=len)
longest=""定義一個空字符串
longest=max(longest,result1,result2,key=len)
longest是不斷更新的
確保每一次賦給longest的都是目前為止三個字符串中長度最長的那個字符串
比較的是長度,更新的字符串內容
1.兩數之和
暴力循環
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
result=[]
for i in range(len(nums)):
for j in range(len(nums)):
if i!=j and nums[i]+nums[j]==target:
result.append(i)
return result
下邊是使用哈希表降低時間復雜度
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hashmap = {} # 用字典來存儲數字和對應的索引
for i, num in enumerate(nums):
complement = target - num
if complement in hashmap:
return [hashmap[complement], i]
hashmap[num] = i
return []
hashmap={}通過初始化一個空字典(哈希表)來存儲數組中已遍歷的元素及其索引,字典可以高效查找元素,它的查找和插入操作的時間復雜度是常數級的。
enumerate()函數會同時遍歷數組 nums 中的元素 num 和索引 i, 并返回包含元素索引和元素值的元組
使用哈希表把時間復雜度降低到O(log n)
浙公網安備 33010602011771號