1232. 缀点成线
题目缀点成线个人代码class Solution: def checkStraightLine(self, coordinates: List[List[int]]) -> bool: # 斜率相等(排除斜率不存在的情况,平行于y轴) n = len(coordinates) temp_dict = defaultdict(int)
题目缀点成线个人代码class Solution: def checkStraightLine(self, coordinates: List[List[int]]) -> bool: # 斜率相等(排除斜率不存在的情况,平行于y轴) n = len(coordinates) temp_dict = defaultdict(int)
题目1018. 可被 5 整除的二进制前缀个人代码class Solution: def prefixesDivBy5(self, A: List[int]) -> List[bool]: # 前缀和(然后优化到迭代) prefix_add = 0 res = [] for i, a in enumerate(A):
题目个人代码class rank_union: # n为节点大小 def __init__(self, n): self.parent = list(range(n)) # 从0开始 self.rank = [0] * n # 查找和基本并查集不变 # 查找(迭代,递归也可以) def find(self, ind
题目228. 汇总区间个人代码import sys class Solution: def summaryRanges(self, nums: List[int]) -> List[str]: if not len(nums): return [] if len(nums) == 1: return [str(nums[0])] re
题目189. 旋转数组个人代码# 迭代超时 class Solution: def rotate(self, nums: List[int], k: int) -> None: """ Do not return anything, modify nums in-place instead. "&
题目830. 较大分组的位置个人代码class Solution: def largeGroupPositions(self, s: str) -> List[List[int]]: if len(s) < 3:return [] size = len(s) start = 0 res = [] f
题目121. 买卖股票的最佳时机个人代码class Solution: def maxProfit(self, prices: List[int]) -> int: # 只能买一只 # 即存在的状态 #1.都没有买过0 #2.买过一次没卖 buy #3.买过一次并且卖了(需要求得) sell
题目123. 买卖股票的最佳时机 III个人代码class Solution: def maxProfit(self, prices: List[int]) -> int: # dp[i][k][j] # 3维 # i 代表第i天的最大收益(i ∈{0,..,n-1}) # k 代表完成的第k笔交易(k ∈{0,1,.,2})
以下来自于leetcode使用数据结构:并查集思路:由于相等关系具有传递性,所有相等的变量属于同一个集合;只关心连通性,不关心距离,因此很容易想到并查集。(很容易嘛,反正我想不到)并查集「并查集」用于判断一对元素是否相连,它们的关系式动态添加的,这一类问题叫做「动态连通性」问题;主要支持「合并」与「查询是否在同一个集合」操作;底层结构是「数组」或者「哈希表」,用于表示「节点」指向「父节点」,初始化
题目509. 斐波那契数个人代码class Solution: def fib(self, n: int) -> int: if n == 0:return 0 Fib = [0]*(n+1) Fib[1] = 1 for i in range(2,n+1): Fib[i] = Fib[i-1]+