04 2021 档案

摘要:15、三数之和 基本思想: 利用排序后的使用双指针的两数之和 具体实现: 1、将数组排序 2、for循环,i从下标0的地方开始,left定义在i + 1位置上,right定义在数组结尾位置上 3、如果nums[i] + nums[left] + nums[right] > 0 说明三数之和大了,ri 阅读全文
posted @ 2021-04-17 17:18 最近饭吃的很多 阅读(67) 评论(0) 推荐(0) 编辑
摘要:76、最小覆盖子串 基本思想: 1、用left,right表示滑动窗口的左边界和右边界,通过改变left,right来扩展和收缩滑动窗口, 2、不断增加right,扩大窗口,直到窗口中的字符符合要求,包含了T中所有字符 3、停止增加right,增加left,缩小窗口,直到窗口中的字符符合要求 4、重 阅读全文
posted @ 2021-04-11 13:19 最近饭吃的很多 阅读(141) 评论(0) 推荐(0) 编辑
摘要:141、环形链表 基本思想: 使用快慢指针,如果是环形的,快指针一定会追上慢指针 具体实现: 循环让快慢指针往后跑, 循环条件是快指针不等于慢指针, 快指针等于慢指针则跳出循环 如果在循环内,快指针指向了null, 跳出循环返回不是环形链表 代码: class Solution: def hasCy 阅读全文
posted @ 2021-04-09 18:32 最近饭吃的很多 阅读(95) 评论(0) 推荐(0) 编辑
摘要:111、二叉树的最小深度 基本思想: 广度优先搜索 具体实现: 1、根节点入列 2、循环条件是 直到清空队列 3、节点出列以后判断左右子树 如果左右子树都为空,返回现在的深度 如果左孩子存在,加入队列,原深度加1 如果右孩子存在,加入队列,原深度加1 depth+1此时并不会改变depth 代码: 阅读全文
posted @ 2021-04-05 10:46 最近饭吃的很多 阅读(114) 评论(0) 推荐(0) 编辑
摘要:37、解数独 基本思路: 回溯算法、把所有情况试一遍 需要填入数字的格,去掉不可能的数字,每一个可能的数字都要试 具体实现: 1、当填写第i行,第j列的元素时,需要知道其对应的行,列,块中,1-9数字的使用情况,从而选用不同的数字 新建row = [set(range(1, 10)) for _ i 阅读全文
posted @ 2021-04-03 15:19 最近饭吃的很多 阅读(135) 评论(0) 推荐(0) 编辑