03 2024 档案
摘要:自己写的,好像有点复杂: class Solution: def wordPattern(self, pattern: str, s: str) -> bool: # 将字符串 s 按空格切分成单词列表 mystr = s.split() # 创建一个空字典,用于存储字符和其出现位置的映射 mydi
阅读全文
摘要:自己写的,冒泡排序,时间爆炸 class Solution: def moveZeroes(self, nums) -> None: """ Do not return anything, modify nums in-place instead. """ n=len(nums) for i in
阅读全文
摘要:自己写的二分法: class Solution: def firstBadVersion(self, n: int) -> int: # 初始化左右指针进行二分查找 left = 1 right = n # 检查第一个版本是否是坏版本 if isBadVersion(1): return 1 # 检
阅读全文
摘要:自己写的,调包排序: from typing import List class Solution: def missingNumber(self, nums: List[int]) -> int: # 将输入的列表排序 nums_new = sorted(nums) # 如果排序后的列表的第一个元
阅读全文
摘要:丑数 就是只包含质因数 2、3 和 5 的正整数。换句话说 丑数=2*……*2*3*……*3*5*……*5 class Solution: def isUgly(self, n: int) -> bool: # 如果 n 小于等于 0,则不是丑数,返回 False if n <= 0: return
阅读全文
摘要:三个简单函数: class Solution: def addDigits(self, num: int) -> int: # 如果数字已经是个位数,则直接返回 if num <= 9: return num # 持续执行直到数字变成个位数为止 while True: # 将数字转换为其各个数字构成
阅读全文
摘要:迭代法-深度优先搜索(栈) class Solution: def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]: if not root: return [] # 如果根节点为空,直接返回空列表 stack = [(roo
阅读全文
摘要:自己写的,有字典很简单: class Solution: def isAnagram(self, s: str, t: str) -> bool: # 创建两个空字典来存储字符计数 s_dic = dict() t_dic = dict() # 遍历字符串s,计算每个字符出现的次数并存储在s_dic
阅读全文
摘要:毫无创意的一版: # 定义一个类 Solution class Solution: # 定义一个方法 isPalindrome,用于检查链表是否为回文 def isPalindrome(self, head: Optional[ListNode]) -> bool: # 如果链表为空,则它是一个回文
阅读全文
摘要:自己写的: class MyQueue: def __init__(self): self.li=list() def push(self, x: int) -> None: self.li.append(x) def pop(self) -> int: return self.li.pop(0)
阅读全文
摘要:递归写法: class Solution: def isPowerOfTwo(self, n: int) -> bool: # 如果 n 等于 1,则直接返回 True if n == 1: return True # 如果 n 等于 0,则直接返回 False if n == 0: return
阅读全文
摘要:自己写的: class Solution: def summaryRanges(self, nums): my_li = [] # 创建一个空列表用于存储结果 if not nums: # 如果输入列表为空 return my_li # 返回空列表 if len(nums) == 1: # 如果输入
阅读全文
摘要:自己写的: class Solution: def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]: # 创建一个新的 TreeNode 以存储反转后的树 newroot = TreeNode() # 如果输入的根节点
阅读全文
摘要:利用内置的list class MyStack: def __init__(self): # 初始化一个空列表用于存储栈的元素 self.li = list() def push(self, x: int) -> None: # 向栈中压入元素 x self.li.append(x) def pop
阅读全文
摘要:自己写的,使用广度优先BFS,迭代: class Solution: def countNodes(self, root: Optional[TreeNode]) -> int: # 如果根节点为空,则树中节点数为 0 if not root: return 0 # 初始化队列,并将根节点放入队列中
阅读全文
摘要:自己写的: from typing import List class Solution: def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool: # 创建一个空字典,用于存储数字及其最近出现的索引 mydict = {
阅读全文
摘要:暴力解法 秒杀 class Solution: def containsDuplicate(self, nums: List[int]) -> bool: # 使用 set 将列表转换为集合,去除重复元素 unique_set = set(nums) # 如果集合的长度和原始列表的长度相等,说明没有
阅读全文
摘要:自己写的,遍历一遍链表,再反向生成一个新链表 class Solution: def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: # 检查链表是否为空 if not head: return None # 初始
阅读全文
摘要:自己写的: 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]
阅读全文