![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题笔记
yyyyyyyyXu
一条ict酸菜鱼
展开
-
剑指offer刷题记录|顺序刷题第四周
文章目录剑指offer 32-III 从上到下打印二叉树剑指offer 32-II 从上到下打印二叉树剑指offer 32-I 从上到下打印二叉树剑指offer 31 栈的压入、弹出序列剑指offer 30 包含min函数的栈剑指offer 29 顺时针打印矩阵剑指offer 25 合并两个序列的链表 剑指offer 32-III 从上到下打印二叉树 class Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]:原创 2021-01-23 21:36:10 · 163 阅读 · 0 评论 -
剑指offer刷题记录|顺序刷题第三周
剑指offer 20 表示数值的字符串 class Solution: def isNumber(self, s: str) -> bool: # 有限状态机,短时间内根本写不出来 # python直接float 虽然面试0分 try: float(s) except: return False return True 剑指offer 24 反转链表 class S原创 2021-01-16 21:46:20 · 153 阅读 · 0 评论 -
剑指offer刷题记录|顺序刷题第二周
文章目录剑指offer 16 数值的整数次方剑指offer18 删除链表某个节点剑指offer17 打印从1到最大的n位数剑指offer 15 二进制中1的个数剑指offer14-II 剪绳子剑指offer 14-I 剪绳子剑指offer 13 机器人的运动范围剑指offer 12 矩阵中的路径剑指offer 11剑指offer 10-2 剑指offer 16 数值的整数次方 class Solution: def myPow(self, x: float, n: int) -> float:原创 2021-01-11 17:38:08 · 130 阅读 · 2 评论 -
剑指offer刷题记录|顺序刷题第一周
文章目录剑指offer 03 数组中重复的数字剑指offer 04 二维数组中的查找剑指offer 05剑指offer 06 打印链表从尾到头剑指offer 07 根据前序和中序重建二叉树剑指offer 08 两个栈实现队列剑指offer 10-I 斐波那契数列 剑指offer 03 数组中重复的数字 class Solution: def findRepeatNumber(self, nums: List[int]) -> int: # 用set()判断是否重复,注意set原创 2021-01-04 10:11:08 · 123 阅读 · 0 评论 -
leetcode笔记|第十六周 栈
文章目录第十六周 栈1544 整理字符串232 用栈实现队列856 括号的分数739 每日温度503 下一个更大元素II921 使括号有效的最少添加85 最大矩形 第十六周 栈 1544 整理字符串 class Solution: def makeGood(self, s: str) -> str: # list()添加append,删除pop(),输出字符串''.join() res = list() for ele in s:原创 2020-12-24 20:31:40 · 100 阅读 · 1 评论 -
leetcode笔记|第十五周哈希表
文章目录第十五周 哈希表1 两数之和136 只出现一次的数字202 快乐数299 猜数字游戏347 前k个高频元素560 和为K的子数组336 回文对 第十五周 哈希表 1 两数之和 class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: # 暴力法 for i in range(len(nums)-1): for j in range(i+原创 2020-12-19 17:14:33 · 94 阅读 · 2 评论 -
leetcode笔记|第十四周 回溯算法
文章目录第十四周 回溯算法401 二进制手表面试题08.04 幂集131 分割回文串526 优美的排列93 复原IP地址51 N皇后10 正则表达式匹配 第十四周 回溯算法 回溯算法是一种纯暴力搜索算法,可以解决组合问题、排列问题、子集问题、切割问题、棋盘问题… 401 二进制手表 class Solution: def readBinaryWatch(self, num: int) -> List[str]: # 暴力法:遍历hour和minite,bin().count("原创 2020-12-14 20:35:41 · 104 阅读 · 0 评论 -
leetcode笔记|第十三周 排序
文章目录第十三周 排序 python对于排序的题真是太偷懒了242 有效的字母异位词922按奇偶排序数组 II1329.将矩阵按对角线排序剑指 Offer 45. 把数组排成最小的数面试题 17.14. 最小K个数1630 等差子数组973 最接近原点的 K 个点 第十三周 排序 python对于排序的题真是太偷懒了 242 有效的字母异位词 class Solution: def isAnagram(self, s: str, t: str) -> bool: # 统计每个元原创 2020-12-07 15:24:48 · 81 阅读 · 0 评论 -
leetcode笔记|第十二周 BFS
文章目录102 二叉树的层序遍历111 二叉树的最小深度127单词接龙310 最小高度树1306 跳跃游戏 III407 接雨水 II913 猫和老鼠 102 二叉树的层序遍历 给一个二叉树,返回其按 层序遍历 得到的节点值。 如,[ [3], [9,20], [15,7] ] class Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]: res = [] queue =原创 2020-11-28 23:00:50 · 93 阅读 · 0 评论 -
leetcode笔记|第十一周 链表
文章目录面试题02.02 返回倒数第k个节点面试题02.06 回文链表面试题02.04 分割链表328 奇偶链表面试题02.08 环路检测25 K个一组翻转链表23 合并K个升序链表 面试题02.02 返回倒数第k个节点 class Solution: def kthToLast(self, head: ListNode, k: int) -> int: # 法1:快慢指针,fast提前k个,然后一起后移,fast没的时候就是slow在倒数第k个 fast =原创 2020-11-21 20:44:52 · 63 阅读 · 0 评论 -
leetcode笔记|第十周 DFS
文章目录面试题04.04 检查平衡性257 二叉树的所有路径面试题16.19 水域大小106 从中序与后序遍历序列构造二叉树200 岛屿数量1254 统计封闭岛屿的数目827 最大人工岛 面试题04.04 检查平衡性 二叉树任何一个节点的两棵子树的高度相差不大于1,叫做平衡数。 class Solution: def Depth(self,root): # 判断子树高度差 if not root: return 0 return 1 + max原创 2020-11-15 16:20:42 · 61 阅读 · 0 评论 -
leetcode笔记|第九周 二分法
文章目录第九周 二分35 搜索插入位置34 在排序数组中查找元素的第一个和最后一个位置33 搜索旋转排序数组162 寻找峰值74 搜索二维矩阵240 搜索二维矩阵II1552 两球之间的磁力 第九周 二分 35 搜索插入位置 输入: [1,3,5,6], 5 输出: 2。 class Solution: def searchInsert(self, nums: List[int], target: int) -> int: # 暴力法 # if nums[0]&原创 2020-11-06 22:07:20 · 644 阅读 · 2 评论 -
leetcode笔记|第八周 图
文章目录1042 不邻接植花210 课程表2面试题04.01 节点间通路684 冗余连接1557 可以到达所有点的最少点数目765 情侣牵手685 冗余连接2 1042 不邻接植花 输入:N = 3, paths = [[1,2],[2,3],[3,1]] 输出:[1,2,3]。花田之间有小路相连就不要种一样的花。 class Solution: def gardenNoAdj(self, n: int, paths: List[List[int]]) -> List[int]:原创 2020-11-01 13:20:27 · 109 阅读 · 0 评论 -
leetcode笔记|第七周 双指针专题
125 验证回文串 回文:a == a[::-1]则为回文。或者使用双指针,左右两个相同时,往里前进一步,直至相遇。 class Solution: def isPalindrome(self, s: str) -> bool: newStr = "".join(ch.lower() for ch in s if ch.isalnum()) if newStr == newStr[::-1]: return True el原创 2020-10-26 22:10:04 · 110 阅读 · 0 评论 -
leetcode笔记|第六周 贪心专题
第六周 贪心专题 122 买卖股票的最佳时机 II [7,1,5,3,6,4] 2号买入3号卖出赚4,3买入6卖出赚3。买入后只能卖出不能买入。虽然题目说不可以一天内多次操作,但写代码是可以的,这不会影响最终结果。因此考虑,[1,2,3]不仅是1号买入3号卖出,也可以是1号买入2号卖出2号买入3号卖出,这样就可以使用遍历。 看到答案里最简单的方法:一行python解决。可以细化到相邻两天的差价,正则赚,进行操作,负则不操作,即记录正值的和。 class Solution: def maxProfit原创 2020-10-19 09:17:47 · 180 阅读 · 3 评论 -
leetcode笔记|第五周 树专题
二叉树相关基础知识 https://blog.csdn.net/xiaoquantouer/article/details/65631708 leetcode二叉树相关教程 https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/59slxe/ https://leetcode-cn.com/leetbook/detail/data-structure-binary-tree/ 剑指offer 27 二叉树的镜像 python可以平行赋原创 2020-10-03 17:37:33 · 88 阅读 · 0 评论 -
leetcode笔记|第四周 数学计算
892 三维形体的表面积 输入[[2]],输出[10]。输入[[1,2],[3,4]],输出4上+4下+前7+后7+左6+右6=34。所以思路就是计算上、前、左,然后乘2。但其实不是这样的,这样会漏掉[[1,1,1],[1,0,1],[1,1,1]]中间凹下去的四周的表面积。但如果计算和四周的高度,则会错过[2,0,4]这样应该是漏掉4个但是加了6的情况。所以看答案思路:考虑每个位置贡献的表面积。这个贡献就是,如果比周围的高就有贡献,那么就不用考虑低的情况了。自己写的代码非常不简洁 不管了 做累了 不优化了原创 2020-09-27 11:23:16 · 190 阅读 · 3 评论 -
leetcode笔记|第三周 动态规划
第三周 动态规划 198 打家劫舍 如果是小偷,选择如何偷东西可以今晚获利最大,注意的是相邻两家不能连着偷会被发现。动态规划就是写递归方程,要注意边界条件。这道题目首先考虑没有可偷的,那就是0,如果只有一家,那就是他家,如果很多家,就考虑当前i家时能偷的最大金额是 要么前一家的最大金额 要么前面的前面那家最大金额加上当前这家。最后返回最后一家的最大金额即可。注意是从最简单的情况开始考虑,像小时候做的总结规律题目一样。 class Solution(object): def rob(self, num原创 2020-09-19 21:47:38 · 162 阅读 · 3 评论 -
leetcode笔记|第二周
14 最长公共前缀 目标是对多个字符串,寻找最长的公共前缀并返回字符串。首先要考虑本来就为空的情况。然后,将第一个字符串作为结果字符串,和第二个字符串逐位比较,从头遍历,当元素不相等的时候,将前缀覆盖到输出结果字符串上,再让这个字符串和第三个字符串进行比较,迭代更新结果字符串。因为不知道整体个数,可以写一个比较两个字符串的函数进行调用,如果profix提前为空,那么可以break,提前停止搜索。 class Solution(object): def longestCommonPrefix(self原创 2020-09-13 18:33:38 · 95 阅读 · 2 评论 -
leetcode笔记 | 第一周
01 字符串相加 不可以使用int(),所以写了两种,都AC了。第一次 从最简单的开始,加油! class Solution(object): def addStrings(self, num1, num2): """ :type num1: str :type num2: str :rtype: str """ # return str(int(num1)+int(num2)) re原创 2020-09-06 12:48:21 · 122 阅读 · 2 评论