2025年11月19日

摘要: 链接:200. 岛屿数量 - 力扣(LeetCode) 用深搜把每一个碰到的1都变成0,这样就处理完了一个发现的岛屿 1 class Solution(object): 2 def numIslands(self, grid): 3 """ 4 :type grid: List[List[str]] 阅读全文
posted @ 2025-11-19 15:00 Annetree 阅读(0) 评论(0) 推荐(0)

2025年11月17日

摘要: 链接:169. 多数元素 - 力扣(LeetCode) 找众数,如果排序的话肯定会覆盖大于一半的数,所以2/n的位置肯定是众数 1 class Solution(object): 2 def majorityElement(self, nums): 3 """ 4 :type nums: List[ 阅读全文
posted @ 2025-11-17 15:15 Annetree 阅读(3) 评论(0) 推荐(0)
 
摘要: 链接:226. 翻转二叉树 - 力扣(LeetCode) 递归 1 # Definition for a binary tree node. 2 # class TreeNode(object): 3 # def __init__(self, val=0, left=None, right=None 阅读全文
posted @ 2025-11-17 15:07 Annetree 阅读(3) 评论(0) 推荐(0)
 
摘要: 链接:104. 二叉树的最大深度 - 力扣(LeetCode) 深搜dfs 注意这里递归前要加self. 1 # Definition for a binary tree node. 2 # class TreeNode(object): 3 # def __init__(self, val=0, 阅读全文
posted @ 2025-11-17 14:17 Annetree 阅读(2) 评论(0) 推荐(0)
 
摘要: 链接:94. 二叉树的中序遍历 - 力扣(LeetCode) 递归 1 # Definition for a binary tree node. 2 # class TreeNode(object): 3 # def __init__(self, val=0, left=None, right=No 阅读全文
posted @ 2025-11-17 13:58 Annetree 阅读(3) 评论(0) 推荐(0)
 
摘要: 链接:739. 每日温度 - 力扣(LeetCode) 维护一个单调递减的栈,直到下一个数比栈尾大,就一直弹出,并记录两个下标差值。其他没有记录的默认为0 这个方法可以用于在 O(n) 的时间复杂度内求出数组中各个元素右侧第一个更大或更小的元素及其下标,然后一并得到其他信息。 1 class Sol 阅读全文
posted @ 2025-11-17 13:36 Annetree 阅读(2) 评论(0) 推荐(0)

2025年11月14日

摘要: 链接:155. 最小栈 - 力扣(LeetCode) 在类里面维护一个最小栈,用来记录栈顶到栈底的最小值 1 class MinStack(object): 2 3 def __init__(self): 4 self.stack = [] 5 self.min_stack = [] 6 7 def 阅读全文
posted @ 2025-11-14 22:46 Annetree 阅读(3) 评论(0) 推荐(0)
 
摘要: 链接:20. 有效的括号 - 力扣(LeetCode) python中list就可以直接当栈用 1 class Solution(object): 2 def isValid(self, s): 3 """ 4 :type s: str 5 :rtype: bool 6 """ 7 length = 阅读全文
posted @ 2025-11-14 22:19 Annetree 阅读(3) 评论(0) 推荐(0)
 
摘要: 链接:240. 搜索二维矩阵 II - 力扣(LeetCode) 从右上角开始搜索,即(x,y)从(0,n-1开始),如果[x,y]值小于目标值,x+=1,如果大于目标值,y-=1 1 class Solution(object): 2 def searchMatrix(self, matrix, 阅读全文
posted @ 2025-11-14 14:48 Annetree 阅读(3) 评论(0) 推荐(0)

2025年11月10日

摘要: 链接:48. 旋转图像 - 力扣(LeetCode) 解题思路:找到原始点、最终点和中心点之间的关系,以3*3的矩阵为例 原始点 最终点 中心点 原始点-中心点 最终点-中心点 (1,0) (0,1) (1,1) (0,-1) (-1,0) (2,0) (0,0) (1,1) (1,-1) (-1, 阅读全文
posted @ 2025-11-10 20:35 Annetree 阅读(4) 评论(0) 推荐(0)
 
摘要: 链接:54. 螺旋矩阵 - 力扣(LeetCode) 关键是每次旋转方向都是顺时针,就可以做一个顺时针方向的模拟数组,来模拟下一步的路径 direction = [[0, 1], [1, 0], [0, -1], [-1, 0]] 要变化方向了就把下标+1%4 1 class Solution(ob 阅读全文
posted @ 2025-11-10 19:50 Annetree 阅读(3) 评论(0) 推荐(0)
 
摘要: 链接:73. 矩阵置零 - 力扣(LeetCode) 无脑暴力写 1 class Solution(object): 2 def setZeroes(self, matrix): 3 """ 4 :type matrix: List[List[int]] 5 :rtype: None Do not 阅读全文
posted @ 2025-11-10 17:21 Annetree 阅读(3) 评论(0) 推荐(0)
 
摘要: 链接:56. 合并区间 - 力扣(LeetCode) 详见官方题解。按照左端排序,如果新的元素的左端点大于当前的右端点,纳入当前。如果新的元素的左端点小于当前的右端点,可以合并,当前的右端点更新为当前和新元素右端点的最大值。 这里主要是有一些二维数组相关的写法要注意一下。 1.二维数组按第一列排序 阅读全文
posted @ 2025-11-10 16:59 Annetree 阅读(3) 评论(0) 推荐(0)
 
摘要: 链接:53. 最大子数组和 - 力扣(LeetCode) 方法一:自己的直接解法,通过三个辅助数组帮忙。一个是sums用来记录nums数组从0到n-1的和。那么所求子数组的最大和就是右边的一个最大值减去左边的一个最小值。 所以另外两个辅助数组,一个是leftMin数组,用来记录sums数组从0到i的 阅读全文
posted @ 2025-11-10 16:18 Annetree 阅读(3) 评论(0) 推荐(0)

2025年11月7日

摘要: 链接:238. 除自身以外数组的乘积 - 力扣(LeetCode) 题目限制不能使用除法,所以开了两个数组listl和listr,listl用来存储i之前的所有数字之乘积,listr用来存储i之后的所有数字之乘积,res[i]就等于listl[i]*listr[i] 1 class Solution 阅读全文
posted @ 2025-11-07 20:46 Annetree 阅读(3) 评论(0) 推荐(0)