随笔分类 - leedcode刷题记录
摘要:自己写的: class Solution: def isIsomorphic(self, s: str, t: str) -> bool: # 使用 match 函数分别检查 s 到 t 和 t 到 s 的映射关系 res_a = self.match(s, t) res_b = self.matc
阅读全文
摘要:自己写的: # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solutio
阅读全文
摘要:自己写的: class Solution: def isHappy(self, n: int) -> bool: n_temp = n # 用n_temp保存当前的数字,以便迭代过程中使用 count = 0 # 用于计数,避免无限循环,设定最多迭代10次 while count < 10: # 最
阅读全文
摘要:自己写的 class Solution: def hammingWeight(self, n: int) -> int: # 将整数 n 转换为二进制字符串,去除前缀 '0b' n_str = bin(n)[2:] # 用于存储 '1' 的列表 res_li = [] # 遍历二进制字符串的每一位
阅读全文
摘要:使用bin函数 class Solution: def reverseBits(self, n: int) -> int: # 将整数 n 转换为二进制字符串,并用 左0 填充至32位 binary_str = bin(n)[2:].zfill(32) # 反转二进制字符串 reversed_str
阅读全文
摘要:自己写的: class Solution: def titleToNumber(self, columnTitle: str) -> int: # 创建一个字典,将字母映射到它们在字母表中的位置 mydict = dict() for i in range(1, 27): mydict[chr(or
阅读全文
摘要:自己写的: class Solution: def majorityElement(self, nums): # 创建一个空字典用于存储数字和其出现次数 mydict = dict() # 遍历输入的列表 nums for i in nums: # 如果数字 i 不在字典中,将其添加到字典,并初始化
阅读全文
摘要:10进制转换成26进制 A对应0:(正常的情况) class Solution: def convertToTitle(self, columnNumber: int) -> str: mydict = {} # 创建字典,映射数字到字母 for i in range(1, 27): mydict[
阅读全文
摘要:会超出时间限制: class Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> Optional[ListNode]: cur_b=headB cur_a=headA while cur_b!=N
阅读全文
摘要:递归: class Solution: def __init__(self): # 初始化一个实例变量 res 用于存储遍历结果 self.res = list() def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]
阅读全文
摘要:递归法: class Solution: def __init__(self): # 初始化一个实例变量 res 用于存储前序遍历结果 self.res = [] def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
阅读全文
摘要:快慢指针: class Solution: def hasCycle(self, head: Optional[ListNode]) -> bool: # 如果链表为空或者只有一个节点,肯定不存在环 if not head or not head.next: return False # 初始化慢指
阅读全文
摘要:自己写的: from typing import List class Solution: def singleNumber(self, nums: List[int]) -> int: # 创建一个字典用于存储数字出现的次数 save_dict = dict() # 遍历输入列表 for i in
阅读全文
摘要:自己写的: class Solution: def isPalindrome(self, s: str): # 将字符串转换为小写,以便进行大小写不敏感的比较 s_lower = s.lower() # 获取字符串的长度 n = len(s_lower) # 创建一个空列表,用于存储字母和数字 s_
阅读全文
摘要:暴力解法,最后内存爆了 class Solution: def maxProfit(self, prices): n=len(prices) if n==1: return 0 if n>1000: return 3 profit = [] for i in range(n): cur=i+1 wh
阅读全文
摘要:自己写的: class Solution: def getRow(self, rowIndex: int): # 初始化一个列表以存储帕斯卡三角形的行 li = [] # 前两行是预定义的 li.append([1]) li.append([1, 1]) # rowIndex为0和1的基本情况 if
阅读全文
摘要:自己写的: class Solution: def generate(self, numRows: int): # 初始化结果列表,包含帕斯卡三角形的前两行 li = [[1], [1, 1]] # 检查如果numRows为1或2,直接返回对应结果 if numRows == 1: return [
阅读全文
摘要:快速排序:递归 def quick_sort(aimlist, first, last): # 打印当前排序状态 print(aimlist) # 如果子列表只有一个元素或没有元素,直接返回 if first >= last: return # 初始化低位、高位和中间值 low = first he
阅读全文
摘要:使用迭代: class Solution: def hasPathSum(self, root: Optional[TreeNode], targetSum: int) -> bool: # 如果根节点为空,直接返回False if not root: return False # 使用栈来进行迭代
阅读全文
摘要:自己写的: # 二叉树节点的定义 class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution:
阅读全文