![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法面试冲刺
文章平均质量分 70
大叔爱学习.
所谓至明,不过至专。
展开
-
Leetcode 算法面试冲刺 热题 HOT 100 刷题(406 416 437 438 448)(六十九)
Leetcode 算法面试冲刺 热题 HOT 100 刷题(406 416 437 438 448)(六十九)原创 2022-08-08 16:48:15 · 1231 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(337 338 347 394 399)(六十八)
Leetcode 算法面试冲刺 热题 HOT 100 刷题(337 338 347 394 399)(六十八)原创 2022-08-06 19:42:04 · 147 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(300 301 309 312 322)(六十七)
Leetcode 算法面试冲刺 热题 HOT 100 刷题(300 301 309 312 322)(六十七)原创 2022-08-05 15:38:36 · 263 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(253 279 283 287 297)(六十六)
文章目录253. 会议室 II279. 完全平方数253. 会议室 II没写出来:class Solution: def minMeetingRooms(self, intervals: List[List[int]]) -> int: if not intervals or len(intervals) == 0: return 0 cnt = 1 new_intervals = sorted(intervals原创 2022-05-25 20:52:47 · 995 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(234 236 238 239 240)(六十五)
文章目录原创 2022-05-20 12:50:07 · 181 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(207 208 215 221 226)(六十四)
文章目录原创 2022-05-19 15:43:19 · 207 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(160 169 198 200 206)(六十三)
文章目录160. 相交链表169. 多数元素198. 打家劫舍动态规划4步法:1、确定状态最后一步子问题2、转移方程3、初始条件和边界情况4、计算顺序200. 岛屿数量206. 反转链表160. 相交链表尝试写了下,没写出来。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = None原创 2022-05-18 11:24:54 · 229 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(142 146 148 152 155)(六十二)
文章目录142. 环形链表 II146. LRU 缓存148. 排序链表152. 乘积最大子数组155142. 环形链表 II想了一个集合的方法,比较简单。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def detectCycle(se原创 2022-05-15 14:30:30 · 207 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(124 128 136 139 141)(六十一)
文章目录124. 二叉树中的最大路径和128. 最长连续序列124. 二叉树中的最大路径和困难题,我先跳过。128. 最长连续序列不会。class Solution { public int longestConsecutive(int[] nums) { Set<Integer> hash = new HashSet<Integer>(); for(int x : nums) hash.add(x); //放入ha原创 2022-05-07 09:32:04 · 368 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(102 104 105 114 121)(六十)
文章目录102. 二叉树的层序遍历104. 二叉树的最大深度105. 从前序与中序遍历序列构造二叉树102. 二叉树的层序遍历# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rig原创 2022-05-06 21:02:13 · 397 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(85 94 96 98 101)(五十九)
文章目录85. 最大矩形94. 二叉树的中序遍历85. 最大矩形94. 二叉树的中序遍历简单题def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]: if not root: return [] res = [] def dfs(root, res): if not root: return if root.l原创 2022-05-06 10:52:07 · 232 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(75 76 78 79 84)(五十八)
文章目录75. 颜色分类76. 最小覆盖子串78. 子集79. 单词搜索84. 柱状图中最大的矩形75 78 7975. 颜色分类就用了一个排序算法。class Solution: def sortColors(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ if not nums原创 2022-05-06 10:22:08 · 1161 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(56 62 64 70 72)(五十七)
文章目录原创 2022-05-05 21:53:02 · 1353 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(42 46 48 49 53 55) (五十六)
文章目录42. 接雨水46. 全排列48. 旋转图像49. 字母异位词分组53. 最大子数组和55. 跳跃游戏42. 接雨水直接看答案了。class Solution: def trap(self, height: List[int]) -> int: if not height: return 0 n = len(height) leftMax = [height[0]] + [0]原创 2022-05-04 18:04:06 · 1124 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(31 32 33 34 39) (五十五)
文章目录31. 下一个排列32. 最长有效括号33. 搜索旋转排序数组34. 在排序数组中查找元素的第一个和最后一个位置39. 组合总和31. 下一个排列没写出来class Solution: def nextPermutation(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ i原创 2022-05-04 12:29:15 · 146 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(17 19 20 21 22 23) (五十四)
文章目录17. 电话号码的字母组合19. 删除链表的倒数第 N 个结点20. 有效的括号21. 合并两个有序链表22. 括号生成23. 合并K个升序链表17. 电话号码的字母组合虽然很麻烦,但是是自己写出来的class Solution: def letterCombinations(self, digits: str) -> List[str]: if not digits or len(digits) == 0: return []原创 2022-05-03 10:20:45 · 400 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(6 10 11 15) (五十三)
文章目录6. Z 字形变换6. Z 字形变换过了,但是特别好时间。class Solution: def convert(self, s: str, n: int) -> str: if len(s) <= n or n == 1: return s res = [] left = 0 cnt = n - 1 while left < len(s):原创 2022-05-01 19:43:33 · 291 阅读 · 0 评论 -
Leetcode 算法面试冲刺 热题 HOT 100 刷题(1 2 3 4 5) (五十二)
文章目录1. 两数之和2. 两数相加1. 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。def twoSum(self, nums: List[int], target: int) -> List[int]: dic = {} for i in原创 2022-04-07 18:57:58 · 135 阅读 · 0 评论 -
Leetcode 算法面试冲刺 排序算法 理论 上(三十二)
文章目录选择排序插入排序冒泡排序归并排序532 · 逆序对快速排序1854 · 数组划分III选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位原创 2022-02-20 21:17:16 · 82 阅读 · 0 评论 -
Leetcode 算法面试冲刺 集合与字典哈希 理论 下(三十一)
文章目录Set常用操作1796 · 差为K的数对数量字典常规操作1457 · 查找子数组1035 · 森林中的兔子856 · 句子相似性Set常用操作1796 · 差为K的数对数量有一个整数数组,每个数在数组中都是唯一的。另有一个整数target,表示目标差值。你的任务是计算数组中元素对的数量,这些数对的差等于目标差值。例如:数组[1,3,5]和目标差值2。有两对数对:[1,3]和[3,5],它们的差为2。你必须返回一个整数,该整数是差为K的数对数量。一开始没考虑负数情况,看了老师的答案原创 2022-02-18 22:34:19 · 348 阅读 · 0 评论 -
Leetcode 算法面试冲刺 集合与字典哈希 理论 上(三十)
文章目录集合521 · 去除重复元素字典56 · 两数之和集合与字典的实现列表和字典的区别Hash表原理哈希函数冲突解决开散列(拉链法)闭散列(开地址)重Hash集合set 集合 常规操作# 增加s1 = set()s1.add(1)s1.add(2)s1.add(3)print("s1 add: ", s1)s1.update([4, 5, 6])print("s1 update: ", s1)# 删除if 1 in s1: s1.remove(1)print("s原创 2022-02-12 18:55:04 · 87 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 十五(二叉搜索树)(二十九)
文章目录177 · 把排序数组转换为高度最小的二叉搜索树900 · 二叉搜索树中最接近的值1033 · BST中的最小差值1744 · 递增顺序查找树177 · 把排序数组转换为高度最小的二叉搜索树给一个排序数组(从小到大),将其转换为一棵高度最小的二叉搜索树。class Solution: """ @param: A: an integer array @return: A tree node """ def sortedArrayToBST(self, A原创 2022-02-12 11:28:46 · 381 阅读 · 0 评论 -
Leetcode 算法面试冲刺 二叉搜索树与分治 理论 下(二十七)
文章目录原创 2022-02-11 14:55:26 · 367 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 十四(二叉树)(二十八)
文章目录155 · 二叉树的最小深度175 · 翻转二叉树376 · 二叉树的路径和155 · 二叉树的最小深度给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的最短路径上的节点数量。"""Definition of TreeNode:class TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None"""from原创 2022-02-11 10:32:25 · 419 阅读 · 0 评论 -
Leetcode 算法面试冲刺 二叉搜索树与分治 理论 上(二十六)
文章目录宽度优先搜索分层遍历70 · 二叉树的层次遍历 II1807 · 斐波纳契数列简单242 · 将二叉树按照层级转化为链表BST 二叉搜索树宽度优先搜索分层遍历如何构建一颗二叉树二叉树根节点到每一个节点的路径长度,是深度减1.70 · 二叉树的层次遍历 II给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)"""Definition of TreeNode:class TreeNode: def _原创 2022-02-09 22:25:03 · 373 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 十三(二叉树)(二十四)
文章目录69 · 二叉树的层次遍历69 · 二叉树的层次遍历给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)挑战挑战1:只使用一个队列去实现它挑战2:用BFS算法来做原创 2022-02-08 21:46:18 · 78 阅读 · 0 评论 -
Leetcode 算法面试冲刺 二叉树 理论 下(二十五)
文章目录二叉树概念宽度优先搜索BFS71 · 二叉树的锯齿形层次遍历BFS + Queue + 翻转BFS + Stack递归深度优先搜索 DFS650 · 二叉树叶子顺序遍历二叉树概念宽度优先搜索BFS完全二叉树,除了最后一行,其它行都是全的,并且最后一行只要有一边是完全的,就是完全二叉树。71 · 二叉树的锯齿形层次遍历给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行)BFS + Queue + 翻转BFS + Stack""原创 2022-02-08 07:53:14 · 470 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 十二(栈)(二十三)
文章目录978 · 基础计算器978 · 基础计算器实现一个基础的计算器来计算一个简单表达式。这个表达式字符串可能包含左括号 ‘(’ 与右括号 ‘)’,加号 ‘+’ 或者 减号 ‘-’,非负整数以及空格 ’ '。给出的表达式总是合理的。学习了eval的用法。遇到了一个错误:其他的都可以过,这个十进制不能以0开头,不会解决。新学了个方法eval,很好用。class Solution: """ @param s: the given expression @retu原创 2022-02-04 19:15:30 · 663 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 十一(队列)(二十二)
文章目录40 · 用栈实现队列493 · 维护队列 II546 · 按接口实现队列642 · 数据流滑动窗口平均值1166 · 推荐结果打散40 · 用栈实现队列正如标题所述,你只能使用两个栈来实现队列的一些操作。队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。class MyQueue: def __init__(self): # do intiali原创 2022-02-03 16:19:55 · 779 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 十(栈与队列)(二十一)
文章目录771 · 二阶阶乘495 · 实现栈492 · 队列维护423 · 有效的括号序列263 · 小括号匹配771 · 二阶阶乘给定一个数n,返回该数的二阶阶乘。在数学中,正整数的二阶阶乘表示不超过这个正整数且与它有相同奇偶性的所有正整数乘积。def doubleFactorial(self, n): # Write your code here res_odd, res_even = 1, 1 for i in range(n, 0, -1原创 2022-02-03 06:16:10 · 476 阅读 · 0 评论 -
Leetcode 算法面试冲刺 二叉树 理论 上(二十)
文章目录树二叉树树的遍历深度优先搜索66 · 二叉树的前序遍历67 · 二叉树的中序遍历68 · 二叉树的后序遍历递归递归三要素366 · 斐波纳契数列递归的复杂度481 · 二叉树叶子节点之和97 · 二叉树的最大深度树树有层次关系,非线性的。线性就是一维的,而树有层次,不是一维的。链表的head节点可以代表整个链表,二叉树也是一样的,当我们知道了根节点后,我们就知道了整个二叉树。所以根节点就是二叉树的代表。我们做题的时候,给定二叉树,也是给一个根节点。二叉树树的遍历原创 2022-02-02 17:43:59 · 499 阅读 · 0 评论 -
Leetcode 算法面试冲刺 栈与队列 理论 下(十九)
文章目录队列 Queue492 · 队列维护541 · 左旋右旋迭代器 II栈421 · 简化路径575 · 字符串解码队列 Queuedeque注意发音,它是两端都可以进出的数据结构。如果将deque当作queue来用,需要做一些限制,一头只能进,另一头只能出。昨天学的Queue也是可以的,get是出,put是进。出队和得到队头元素的区别在于:出队后元素就不在队列里了。而得到队头元素,只是peek一下地址,元素依然还在。from queue import Queueq = Queue()f原创 2022-02-01 21:50:57 · 983 阅读 · 0 评论 -
Leetcode 算法面试冲刺 栈与队列 理论 上(十八)
文章目录栈栈的实现练习题 423 · 有效的括号序列栈的调用队列练习题 492 · 队列维护栈python没有栈,需要用list去实现。list也有pop操作。list可以说比stack更厉害一些,因为list可以按索引访问。peek是查看栈顶元素,但是不弹出。栈的实现练习题 423 · 有效的括号序列给定一个字符串所表示的括号序列,包含以下字符: ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, 判定是否是有效的括号序列。括号必须依照 “()” 顺序表示, “()[]原创 2022-01-31 20:00:45 · 206 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 九(字符串)(十七)
文章目录936 · 首字母大写491 · 回文数133 · 最长单词422 · 最后一个单词的长度353 · 最大字母8 · 旋转字符串936 · 首字母大写输入一个英文句子,将每个单词的第一个字母改成大写字母def capitalizesFirst(self, s): # Write your code here if not s: return "" ss = "" ss += s[0].upper() cur =原创 2022-01-31 15:03:13 · 453 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 八(字符串)(十六)
文章目录241 · 转换字符串到整数(容易版)146 · 大小写转换 II13 · 字符串查找1535 · 转换成小写字母1343 · 两字符串和241 · 转换字符串到整数(容易版)给一个字符串, 转换为整数。你可以假设这个字符串是一个有效整数的字符串形式, 且范围在32位整数之间 (-231 ~ 231 - 1)。def stringToInteger(self, target): # write your code here return int(target)原创 2022-01-29 20:03:27 · 620 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 七(数组与循环)(十五)
文章目录407 · 加一220 · 冰雹猜想53 · 翻转字符串50 · 数组剔除元素后的乘积46 · 主元素9 · Fizz Buzz 问题407 · 加一给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照数位高低进行排列,最高位的数在列表的最前面。方法一:def plusOne(self, digits): # write your code here symbol = 1 li = [] for原创 2022-01-29 10:09:09 · 664 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 六(数组与循环)(十三)
文章目录768 · 杨辉三角767 · 翻转数组539 · 移动零479 · 数组第二大数235 · 分解质因数768 · 杨辉三角给一整数 n, 返回杨辉三角的前 n 行每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。def calcYangHuisTriangle(self, n): # write your code h原创 2022-01-24 14:43:27 · 380 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 五(数组与循环)(十二)
文章目录298 · 寻找素数297 · 寻找最大值1334 · 旋转数组807 · 回文数 II298 · 寻找素数输出n以内所有的素数。质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。def prime(self, n): # write your code here if n <= 1: return [] li = [] for i in r原创 2022-01-22 22:21:02 · 120 阅读 · 1 评论 -
Leetcode 算法面试冲刺 实战 四(数组与循环)(十一)
文章目录485 · 生成给定大小的数组484 · 交换数组两个元素463 · 整数排序214 · 数组的最大值25 · 打印X485 · 生成给定大小的数组给你一个大小size,生成一个元素从1 到 size的数组def generate(self, size): # write your code here if size <= 0: return [] return [i for i in range(1, size + 1)]484原创 2022-01-22 15:06:05 · 346 阅读 · 0 评论 -
Leetcode 算法面试冲刺 实战 三(Python基础)(十)
文章目录478 · 简单计算器283 · 三数之中的最大值145 · 大小写转换23 · 判断数字与字母字符1141 · 月份天数766 · 闰年478 · 简单计算器def calculate(self, a, operator, b): # write your code here if operator == '+': return a + b elif operator == '-': return a - b elif oper原创 2022-01-21 22:01:29 · 550 阅读 · 0 评论