LeetCode 155. 最小栈 155. 最小栈解题思路 push() 方法: 每当 push() 新值进来时,如果 新值 <= min_stack 的栈顶值,则把新值也存入 min_stack,使得 min_stack 的栈顶始终是整个栈 stack 中的最小值。 pop() 方法: 每当 pop() 出栈时,如果 pop() 出来的值等于 min_stack 的栈顶值,则说明最小值被弹出了,此时也要把 min 2026-02-08 LeetCode #栈
LeetCode 169. 多数元素 169. 多数元素解题思路 使用 Boyer-Moore 投票算法,维护一个候选元素 res 和一个计数器 count,遍历数组中的每个元素: 如果 count 为 0,则将当前元素设置为候选元素 res。 如果当前元素等于候选元素 res,则将计数器 count 加 1;否则,将计数器 count 减 1。 最后返回候选元素 res 即可。 2026-02-08 LeetCode #技巧
LeetCode 198. 打家劫舍 198. 打家劫舍解题思路 $dp[i]$ 表示偷窃到第 $i$ 个房屋时能获得的最大金额 偷第$i$个房屋$$dp[i] = dp[i - 2] + nums[i]$$ 不偷第$i$个房屋$$dp[i] = dp[i - 1]$$ 状态方程$$dp[i] = max(dp[i - 1], dp[i - 2] + nums[i])$$ 特判 数组长度为 1 初始化前两 2026-02-08 LeetCode #动态规划
LeetCode 199. 二叉树的右视图 199. 二叉树的右视图解题思路先访问右子树,再访问左子树,这样就能保证在每一层访问到的第一个节点就是该层最右边的节点 2026-02-08 LeetCode