原创 有效的括號
class Solution: def isValid(self, s: str) -> bool: if s is None: return True
原创 路徑總和
遞歸,直接把問題轉換爲葉子節點的val是否等於sum(注:使用return 遞歸 or 遞歸的方法將葉子節點的返回值傳遞至root節點)。 # Definition for a binary tree node. # class Tre
原创 二叉樹的最大深度
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # s
原创 逆波蘭表達式求值
本想用字典代替if判斷會快,然而。。。並不會: class Solution: def __init__(self): self.operator = { '+': self.a
原创 刪除排序數組中的重複項
因爲是排序數據,所以極其簡單: class Solution: def removeDuplicates(self, nums: List[int]) -> int: if nums:
原创 移動零
由刪除排序數組中的重複項來的靈感,都是交換類題目,雙指針,k之前的都是有效位 class Solution: def moveZeroes(self, nums: List[int]) -> None: """
原创 兩數之和
建立對應的哈希表,key=數,value=索引,遍歷一次,每次找target-num即可: class Solution: def twoSum(self, nums: List[int], target: int) -> Li
原创 有效的數獨
因爲每次按行遍歷,因此建立一個行哈希表,9個列哈希表,和3個方格哈希表,通過查詢元素是否在相應表中來判斷: class Solution: def isValidSudoku(self, board: List[List[str
原创 存在重複元素
使用哈希表(字典),出現訪問錯誤會報KeyError,若未出現即返回True,否則返回False,複雜度O(N) class Solution: def containsDuplicate(self, nums: List[in
原创 島嶼數量
BFS方法,每次發現爲‘1’的島嶼才搜索,且只要搜到連通域就將其置‘0’: class Solution: def numIslands(self, grid: List[List[str]]) -> int:
原创 只出現一次的數字
哈希表法: class Solution: def singleNumber(self, nums: List[int]) -> int: visited = {}
原创 買賣股票的最佳時機 II
想法是取到低峯和高峯相減,我的解法: class Solution: def maxProfit(self, prices: List[int]) -> int: if not prices:
原创 設計循環隊列
你的實現應該支持如下操作: MyCircularQueue(k): 構造器,設置隊列長度爲 k 。 Front: 從隊首獲取元素。如果隊列爲空,返回 -1 。 Rear: 獲取隊尾元素。如果隊列爲空,返回 -1 。 enQueue(va