| 子串基础前缀和 | 思考 | |||
| 和为k的子数组 | 6min ac 小细节优化时间 | 3min ac | 3min ac | |
| 两数之和 | 思考 | 1min ac | 5min ac 有点忘了字典 | |
| 接雨水 | 1min ac | 思考 | ||
| 三数之和 | 草泥洼 | 思考 | ||
| 字母异位词分组 | 思考 | x | ||
| 最长连续序列 | 思考 | ac | ||
| 移动零 | 思考 | 5min ac | ||
| 无重复字符的最长子串 | 思考 | 2min ac | ||
| 找到字符串中所有字母异位词 | 2min ac | 思考 | ac | |
| 滑动窗口最大值 | 3min ac | 思考 | 4min ac | |
| 最小覆盖子串 | 5min ac | 思考 | 3min ac | |
| 买卖股票的最佳时机 | 思考 | 3min ac | ||
| 最大子数组和 | 2min前缀和 回溯x | 2min ac 前缀和 回溯 差一点ac | 1min ac前缀和优化版 2min 回溯 2min 空间优化 | |
| 合并区间 | 3min ac | 思考 | 3min ac | |
| 除了自己以外的乘积 | 6min x 公式错误 | 12min x | 2min ac | 1min ac |
| 轮转数组 | 2min ac | 思考 | 3min ac | |
| 矩阵置零 | 5min ac | 7min ac | 5min ac | ac |
| 缺失的第一个正数 | 2min ac | x | 5min ac | ac |
| 螺旋矩阵 | 8min ac | 4min ac | x | |
| 旋转图像 | 简单法:1min ac 旋转法:1min ac | 简单法:1min ac 旋转法:x | ac ac 并大彻大悟 | |
| 搜索二维矩阵Ⅱ | 1min ac | x | ||
| 相交链表 | 1min ac | x | ||
| 合并两个有序链表 | ac 但是不够完美 | |||
| 回文链表 | ac |
搜索二维矩阵Ⅱ
昨天完全是靠记忆写的,对于循环的把握很差
我今天写的代码
完整循环判断是否等于target
极端情况:如果矩阵里没有 target,会先执行
matrix[i][j]取值,再进循环里判断越界,如果此时 i 已经 = m 或 j=-1,执行matrix[i][j]会直接抛出数组越界异常!
合理的循环应该是判断matrix的位置是否越界,没有越界就判断是否相等
class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: m,n = len(matrix),len(matrix[0]) i,j = n-1,0 while matrix[i][j]!=target: if i==-1 or j ==m: return False if matrix[i][j]<target: i+=1 elif matrix[i][j]>target: j-=1 else: return True return True