随笔分类 -  ACM

上一页 1 2 3 4 5 6 7 8 下一页

LeetCode236 二叉树的最近公共祖先
摘要:LeetCode236 二叉树的最近公共祖先 dfs二叉树,记录以当前节点为根节点的子树是否包含p节点或q节点 记录第一次满足条件的节点即为所求最近公共祖先 判断条件为:1. 左右子树分别含有p节点和q节点;2. 当前节点为p节点或q节点,另一节点在左子树或右子树中. # Definition fo 阅读全文

posted @ 2022-07-02 16:28 solvit 阅读(23) 评论(0) 推荐(0)

LeetCode103 二叉树的锯齿形层序遍历
摘要:LeetCode103 二叉树的锯齿形层序遍历 使用两个栈进行模拟 + bfs # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # s 阅读全文

posted @ 2022-07-02 14:47 solvit 阅读(23) 评论(0) 推荐(0)

LeetCode33 搜索旋转排序数组(二分)
摘要:LeetCode33 搜索旋转排序数组 二分数列,仅仅当对于当前处理部分nums[l] < target < nums[r]时,进行答案更新,否则在另一部分寻找答案 class Solution: def search(self, nums: List[int], target: int) -> i 阅读全文

posted @ 2022-07-02 14:35 solvit 阅读(21) 评论(0) 推荐(0)

LeetCode386 字典序排数
摘要:LeetCode386 字典序排数 构造字典树,dfs遍历记录 class Solution: def lexicalOrder(self, n: int) -> List[int]: ans = [] def dfs(cur): if cur <= n: ans.append(cur) else: 阅读全文

posted @ 2022-07-02 14:17 solvit 阅读(19) 评论(0) 推荐(0)

LeetCode287 寻找重复数(快慢指针寻找环入口)
摘要:LeetCode287 寻找重复数 快慢指针寻找环入口 关于判定有环之后如果寻找环入口可参考 参考 class Solution: def findDuplicate(self, nums: List[int]) -> int: slow, fast = nums[0], nums[nums[0]] 阅读全文

posted @ 2022-07-01 22:47 solvit 阅读(23) 评论(0) 推荐(0)

LeetCode846 一手顺子
摘要:LeetCode846 一手顺子 哈希算法,count字典记录每个元素出现个数,然后按顺子规则逐个消减,判定是否符合 class Solution: def isNStraightHand(self, hand: List[int], groupSize: int) -> bool: count, 阅读全文

posted @ 2022-07-01 22:02 solvit 阅读(23) 评论(0) 推荐(0)

LeetCode面试题 04.06. 后继者
摘要:LeetCode面试题 04.06. 后继者 求中序遍历中给定节点的后一个节点,分右子树中/父节点中 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # se 阅读全文

posted @ 2022-07-01 18:49 solvit 阅读(21) 评论(0) 推荐(0)

LeetCode337 打家劫舍 III
摘要:LeetCode337 打家劫舍 III 与LeetCode198 打家劫舍一致,将数列换为树形结构 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right 阅读全文

posted @ 2022-07-01 17:10 solvit 阅读(19) 评论(0) 推荐(0)

LeetCode199 二叉树的右视图(bfs)
摘要:LeetCode199 二叉树的右视图 bfs记录每层最后一位被遍历的节点值 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # se 阅读全文

posted @ 2022-07-01 16:46 solvit 阅读(25) 评论(0) 推荐(0)

LeetCode99 恢复二叉搜索树(Morris中序遍历)
摘要:LeetCode99 恢复二叉搜索树 Morris中序遍历 + 记录逆序对 Morris遍历 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=Non 阅读全文

posted @ 2022-07-01 16:20 solvit 阅读(20) 评论(0) 推荐(0)

Python 二叉树遍历方式总结
摘要:二叉树节点定义 class Node(): def __init__(self, val): self.val = val self.left = None self.right = None 递归遍历 递归实现前中后序遍历 class Traverse(): def preorder_traver 阅读全文

posted @ 2022-07-01 13:35 solvit 阅读(128) 评论(0) 推荐(0)

LeetCode887 鸡蛋掉落
摘要:LeetCode887 鸡蛋掉落 考虑使用 $k$ 个鸡蛋,计算进行 $t$ 次操作可以测试的最高楼层数,记作 $dp[t][k]$ 最小的 $t$ 使得 $dp[t][k] \ge n$ 即为最终答案 转移状态分鸡蛋碎了和没有碎 $dp[t][k] = 1 + dp[t-1][k] + dp[t- 阅读全文

posted @ 2022-06-30 16:54 solvit 阅读(25) 评论(0) 推荐(0)

LeetCode46 全排列
摘要:LeetCode46 全排列 递归求解 class Solution: def permute(self, nums: List[int]) -> List[List[int]]: ans, l = [], len(nums) def dfs(cur): if cur == l - 1: ans.a 阅读全文

posted @ 2022-06-30 15:03 solvit 阅读(27) 评论(0) 推荐(0)

LeetCode714 买卖股票的最佳时机含手续费
摘要:LeetCode714 买卖股票的最佳时机含手续费 $dp[i]$ 表示第 $i$ 天结束之后所获得的最大收益 $dp[i][0]$ 表示第 $i$ 天结束之后手中持有一张股票,该股票来源包括今天购买和昨天就持有 $dp[i][1]$ 表示第 $i$ 天结束之后手中没有股票,即昨天也没有或今天卖出 阅读全文

posted @ 2022-06-30 14:26 solvit 阅读(24) 评论(0) 推荐(0)

LeetCode309 最佳买卖股票时机含冷冻期
摘要:LeetCode309 最佳买卖股票时机含冷冻期 $dp[i]$ 表示第 $i$ 天结束之后所获得的最大收益 $dp[i][0]$ 表示第 $i$ 天结束之后手中持有一张股票,该股票来源包括今天购买和昨天就持有 $dp[i][1]$ 表示第 $i$ 天结束之后手中没有股票,且处于冷冻期,即今天卖出手 阅读全文

posted @ 2022-06-30 13:14 solvit 阅读(26) 评论(0) 推荐(0)

LeetCode42 接雨水(单调栈)
摘要:LeetCode42 接雨水 维护一个单调栈,单调栈存储的是下标,满足从栈底到栈顶的下标对应的数组 height 中的元素递减 每次遇到大于栈顶元素的值时进行答案累计 class Solution: def trap(self, height: List[int]) -> int: ans, sta 阅读全文

posted @ 2022-06-30 10:51 solvit 阅读(50) 评论(0) 推荐(0)

LeetCode213 打家劫舍 II
摘要:LeetCode213 打家劫舍 II 考虑环形,首位不能同时选择 则分别对 $[0, len - 2]$ 和 $[1, len - 1]$ 做LeetCode198 打家劫舍 class Solution: def rob(self, nums: List[int]) -> int: def so 阅读全文

posted @ 2022-06-30 00:24 solvit 阅读(32) 评论(0) 推荐(0)

LeetCode198 打家劫舍
摘要:LeetCode198 打家劫舍 $dp[i]$ 表示前 $i$ 个房间带来的收益,这里不一定要选择第 $i$ 个房间 class Solution: def rob(self, nums: List[int]) -> int: l = len(nums) if l == 0: return 0 i 阅读全文

posted @ 2022-06-29 22:27 solvit 阅读(37) 评论(0) 推荐(0)

LeetCode357 统计各位数字都不同的数字个数
摘要:LeetCode357 统计各位数字都不同的数字个数 注意0的位置,分不同位数单独计算 class Solution: def countNumbersWithUniqueDigits(self, n: int) -> int: if n == 0: return 1 if n == 1: retu 阅读全文

posted @ 2022-06-29 21:08 solvit 阅读(27) 评论(0) 推荐(0)

LeetCode319 灯泡开关
摘要:LeetCode319 灯泡开关 等价于求小于等于n的平方数的个数 class Solution: def bulbSwitch(self, n: int) -> int: if n == 0: return 0 i, ans = 1, 0 while i * i <= n: ans, i = an 阅读全文

posted @ 2022-06-29 20:03 solvit 阅读(17) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 下一页

导航