A. leetcode算法
*最近在做一些 leetcode 的算法题,我会将自己做过的算法题记录下来以供大家参考,如果查找不方便请看 油猴插件实现网站左侧目录生成。
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在 原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例:
解答:
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
示例:
提示:
解答:
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
示例:
说明:
解答:
给定一个整数数组,判断是否存在重复元素。
如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
示例:
解答:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例:
解答:
给定两个数组,编写一个函数来计算它们的交集。
示例:
说明:
进阶:
解答:
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例:
解答:
给定一个数组 nums ,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
说明:
给定一个整数数组 nums 和一个目标值 target ,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
解答:
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。
数独部分空格内已填入了数字,空白格用 '.' 表示。
示例:
说明:
解答:
给定一个 *n *× *n* 的二维矩阵表示一个图像。
将图像顺时针旋转 90 度。
说明:
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。 请不要 使用另一个矩阵来旋转图像。
示例:
解答:
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须 原地修改输入数组 、使用 O(1) 的额外空间解决这一问题。
你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。
示例:
解答:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例:
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
解答:
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
解答:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
长度一样,包含的字母都一样,每个字符出现的频率也一样,只是顺序不同而已,这就属于异位词,
示例:
说明:
你可以假设字符串只包含小写字母。
进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
解答:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明 :本题中,我们将空字符串定义为有效的回文串。
示例:
解答:
请你来实现一个 atoi 函数,使其能将字符串转换成整数。
首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:
注意 :假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换,即无法进行有效转换。
在任何情况下,若函数不能进行有效的转换时,请返回 0 。
提示 :
示例:
解答:
实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始) 。如果不存在,则返回 -1 。
示例:
说明:
当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。
对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符
解答:
“外观数列”是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:
1 被读作 "one 1" ("一个一") , 即 11 。
11 被读作 "two 1s" ("两个一") , 即 21 。
21 被读作 "one 2", "one 1" ("一个二" , "一个一") , 即 1211 。
给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。
注意 :整数序列中的每一项将表示为一个字符串。
示例:
解答:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 "" 。
示例:
说明:
所有输入只包含小写字母 a-z 。
解答:
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 -- head = [4,5,1,9],它可以表示为:
示例:
说明:
解答:
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
说明:
给定的 n 保证是有效的。
进阶:
你能尝试使用一趟扫描实现吗?
解答:
反转一个单链表。
示例:
解答:
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
解答:
请判断一个链表是否为回文链表。
示例:
解答:
给定一个链表,判断链表中是否有环。
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1 ,则在该链表中没有环。
示例:
解答:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明 : 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7] ,
返回它的最大深度 3 。
解答:
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
示例:
解答:
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
解答:
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
二叉树: [3,9,20,null,null,15,7] ,
返回其层次遍历结果:
解答:
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
示例:
给定有序数组: [-10,-3,0,5,9] ,
一个可能的答案是: [0,-3,9,-10,null,5] ,它可以表示下面这个高度平衡二叉搜索树:
解答:
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
说明:
示例:
解答:
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。
假设你有 n 个版本 [1, 2, ..., n] ,你想找出导致之后所有版本出错的第一个错误的版本。
你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。
示例:
解答:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意 :给定 n 是一个正整数。
示例:
解答:
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。
注意 :你不能在买入股票前卖出股票。
示例:
解答:
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
解答:
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。
示例:
解答:
打乱一个没有重复元素的数组。
示例:
解答:
设计一个支持 push , pop , top 操作,并能在常数时间内检索到最小元素的栈。
示例:
解答:
写一个程序,输出从 1 到 n 数字的字符串表示。
示例:
解答:
统计所有小于非负整数 n 的质数的数量。
示例:
解答:
给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例:
解答:
罗马数字包含以下七种字符: I , V , X , L , C , D 和 M 。
例如,罗马数字 2 写做 II ,即为两个并列的 1 。 12 写做 XII ,即为 X + II 。 27 写做 XXVII , 即为 XX + V + II 。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII ,而是 IV 。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX 。这个特殊的规则只适用于以下六种情况:
示例:
解答:
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量 )。
示例:
提示:
B. Leetcode1158. 市场分析 I(中等)
题目
Table: Users
此表主键是 user_id,表中描述了购物网站的用户信息,用户可以在此网站上进行商品买卖。
Table: Orders
此表主键是 order_id,外键是 item_id 和(buyer_id,seller_id)。
Table: Item
此表主键是 item_id。
请写出一条SQL语句以查询每个用户的注册日期和在 2019 年作为买家的订单总数。
查询结果格式如下:
Users table:
Orders table:
Items table:
Result table:
生成数据
解答
查询每个码肢核用户的注册日期和在 2019 年作为买家的订单总数。
先查询2019 年作为买家的订单总数
与user表进行连迟掘饥备接即可
选2019年的字段可以用 year(order_date)='
C. 103. leetcode笔记(1~60)
d1
https://leetcode-cn.com/problems/two-sum
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
【hashmap存储】
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。
nums1 = [1, 2]
nums2 = [3, 4]
则中位数是 (2 + 3)/2 = 2.5
【奇偶判断】
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
【双循环贪心】
d2
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
输入: 121
输出: true
【折半比较】
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。
注意:
假设字符串的长度不会超过 1010。
示例:
输入:
"abccccdd"
输出:
7
【集合更新与判空】(add remove, 放入可回文的字符,无重复)
给你一个字符串 s 和一个字符规律 p ,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。
'.' 匹配任意单个字符
'*' 匹配零个或多个前面的那一个元素
所谓匹配,是要涵盖 **整个 **字符串 s 的,而不是部分字符串。
说明:
【正则包与结果项】
d3
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
示例:
给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
你不需要考虑数组中超出新长度后面的元素。
【新计数索引】
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
示例:
给定 nums = [3,2,2,3], val = 3,
函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。
你不需要考虑数组中超出新长度后面的元素。
【while val存在】
实现 strStr() 函数:
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例:
输入: haystack = "hello", needle = "ll"
输出: 2
【str.index(p)】
d4
【分支递归乘数】
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。
给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
【缓存和】
给定一个二进制数组,你可以最多将 1 个 0 翻转为 1,找出其中最大连续 1 的个数。
输入:[1,0,1,1,0]
输出:4
解释:翻转第一个 0 可以得到最长的连续 1。
当翻转以后,最大连续 1 的个数为 4。
【最近0的出现位置】
d5
对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”
输出: True
解释: 28 = 1 + 2 + 4 + 7 + 14
【折平根比较】
修改一个数,则变成非递减数列,输出True
【嵌套条件分支】
123456789101112...求出第N个数字对应的单字符数值
【while True中的数量级t和求解条件m】
d6
列表中存在最大长度为k的两个相等的数,则返True
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。如输入: nums = [1,2,3,1], k = 3, 输出: true
【集合表示滑动窗口】
【双指针追踪】
两个数不是同一个数,存在某数2倍数的一个数则返回True
【判双零】
d7
两个数值型字符串,相加后返回结果字符串
【while中低位进位】
求节点与其祖先之间的最大差,如:
【左右递归dfs返回最大差】
一排人领糖果, 相邻的人rating高的获得较多糖,每人都有糖果。
老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。
你需要按照以下要求,帮助老师给这些孩子分发糖果:
每个孩子至少分配到 1 个糖果。
相邻的孩子中,评分高的孩子必须获得更多的糖果。
那么这样下来,老师至少需要准备多少颗糖果呢?如输入: [1,0,2], 输出: 5
解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。
【左右规则】
d8
返回链表中倒数第k个节点值
【双指针追踪】
是否平衡二叉树,即任意一个节点其两颗子树的高度差不超过一。
【递归返回是否平衡和树高】
【三重while中低位进位】
d9
删除链表中的节点
【制造伪头结点】
之字形层次遍历二叉树,如:
【递归含层数的层次遍历与折返判断】
如果一个数的左边数组和与右边数组和相等,则返回此中间数的索引。
【从左累加与总和比较】
d10
输出二叉树的镜像, 如:
【制造临时节点的自身递归】
自底向上遍历二叉树,如:
【递归层次遍历】
【含hashmap[depth]的dfs递归】
d11
返回除法结果,不越界[-2**31, 2**31-1]
【正负/零划分】
一个数的二进制表示中1的个数
【带奇偶判断的逐右移位】
移除所有值为val的节点,返回链表。如输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
【含有目标比较的自身递归】
d12
实现int sqrt(int x)函数
【牛顿迭代】
【两次判空与全存在的各自相加】
求出根到叶子节点路径总和为固定值的所有路径集
【目标递减下叶子和当前更新的路径和与目标值的比较】
d13
数组中是否有独一无二的出现次数
【hashmap计数与值数组判重】
给定一个无序的整数数组,找到其中最长上升子序列的长度。如输入: [10,9,2,5,3,7,101,18]
输出: 4 ,解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。
【双循环动态规划】
【递归判断】
d14
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。如输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
【最低股价与最大利润同时更新】
输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。
要求时间复杂度为O(n)。如输入: nums = [-2,1,-3,4,-1,2,1,-5,4]
输出: 6, 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
【max0 sum0初始索引0赋值,与sum0>0判断】
给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。如输入: n = 12
输出: 3 ,解释: 12 = 4 + 4 + 4
【动态规划双循环解背包问题】
d15
统计所有小于非负整数 n 的质数的数量。如输入: 10
输出: 4,解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
【筛去法】
找出第 n 个丑数。
丑数就是只包含质因数 2, 3, 5 的正整数。如输入: n = 10
输出: 12, 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
【三指针动态规划】
给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。
你可以无限次地完成交易,但是你每次交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。
返回获得利润的最大值。如输入: prices = [1, 3, 2, 8, 4, 9], fee = 2
输出: 8,解释: 能够达到的最大利润:
在此处买入 prices[0] = 1
在此处卖出 prices[3] = 8
在此处买入 prices[4] = 4
在此处卖出 prices[5] = 9
总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8.
【买入卖出的动态规划】
d16
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
如输入: [7,1,5,3,6,4]
输出: 7
解释:
在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出,
这笔交易所能获得利润 = 5-1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,
这笔交易所能获得利润 = 6-3 = 3 。
【同leet714 多次买卖的动态规划】
是否是相同的树
【同空、不同空判断后的自身递归】
不特定根节点和叶子节点,返回路径总和为固定值的路径数
【自身递归与dfs递归】
d17
找出右边的值小于当前值的数的个数:
使用线段树构建左右子树,并从右到左计算前面的数小于当前值的数的个数,最终返回依次进入结果数组的list的倒置值。
【list复制法】
将遍历到的前两个和数都去掉,双重遍历T(n)= O(n)
规范的路径表示写法转换为最简路径
【栈进栈出,判断'' '.' '..'()】
d18
【复制字符库,逐次后移匹配库起始点】
按要求分一个数组为m份,求其中子数组的最大值中最小一个
【二分查找、设定子数组最大的和mid作划分节点】
【二分思想,拆分数组递归】(不用判断平衡)
d19(52%)
两个字符串对应位置移动总次数在指定步数内(ascii值的差),求字符串的最大可变换长
【滑窗记录更新最初位置、不断更新当前滑窗内移动步数最小值】
D. 股票做t是什么意思,由什么技巧
股票中做T也就T+0,一种操作方法的简称,T+0交易通俗地说,就是当天买入的股票在当天就可以卖出。T+0交易曾在我国实行过,但因为它的投机性太大,所以,自1995年1月1日起,为了保证股票市场的稳定,防止过度投机,股市改为实行“T+1”交易制度,当日买进的股票,要到下一个交易日才能卖出。同时,对资金仍然实行“T+0”,即当日回笼的资金马上可以使用。
T+0交易,比方说你手里有股票一千股,今天你判断该股票能大涨,你就先买入该股票五百股或一千股都行,但是之前收盘你必须卖出你原先的股票,这样你的手里还是一千股股票。
还有一种方法,就是你感觉今天你的股票要大跌,就开盘逢高先卖出该股票五百股股票或一千股股票,尾盘快收盘再买回来五百股股票或一千股股票。这样你的手里还是一千股股票。
选择刚刚从底部启动,形成上升趋势的股票,要掌握该股的股性,主力经常早盘拉起,中盘砸下,尾盘又拉起,几乎每日如此要有良好的盘面感觉,早盘拉起时,感觉拉不动了,就及时卖出,动作要快,砸下时感觉砸不动了,就及时买入拉起卖出后,当天必须买回,如果第二天再买回,就重新计算成本了
T+0操作的个股要和大盘结合起来,在趋势上要相对吻合,同热点相吻合。当然最主要的是对个股的短期走势要有研究,把握住它的脉搏。操作时必须克服心理障碍,要做到胆大心细。
操作必须注意的事项:
做T+0操作你必须有足够的时间盯住盘面,盘面语言掌握了才能更好的操作,做T+0操作要将分时走势,5分钟走势和15分钟走势图结合起来观察,才能较好地把握机遇。事先要做好功课,心中有数,在盘面上一旦出现了你预测到的情况,才能胸有成竹地做好这次操作。
这些可以慢慢去领悟,投资者在不熟悉操作前可先用个模拟盘去演练,很快就能掌握其中奥秒,我平时炒股在不会操作的情况下都会用个牛股宝模拟盘先去演练,等明白后再去实战,个人认为这样操作相对来说比较稳妥,愿能帮助到你,祝投资愉快!
E. LeetCode热题100
1.两数之和 简单
https://leetcode-cn.com/problems/two-sum/
15. 三数之和 中等
https://leetcode-cn.com/problems/3sum/
49. 字母异位词分组 中等
https://leetcode-cn.com/problems/group-anagrams/
56. 合并区间 中等
https://leetcode-cn.com/problems/merge-intervals/
148. 排序链表 中等
https://leetcode-cn.com/problems/sort-list/
1.两数之和 简单
https://leetcode-cn.com/problems/two-sum/
128. 最长连续序列 中等
https://leetcode-cn.com/problems/longest-consecutive-sequence/
438. 找到字符串中所有字母异位词 中等
https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/
448. 找到所有数组中消失的数字 简单 原地存储次数
https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/
2.两数相加 中等
https://leetcode-cn.com/problems/add-two-numbers/
21. 合并两个有序链表 简单
https://leetcode-cn.com/problems/merge-two-sorted-lists/
22. 括号生成 中等
https://leetcode-cn.com/problems/generate-parentheses/
23. 合并K个升序链表 困难
https://leetcode-cn.com/problems/merge-k-sorted-lists/
39. 组合总和 中等
https://leetcode-cn.com/problems/combination-sum/
46. 全排列 中等
https://leetcode-cn.com/problems/permutations/
48. 旋转图像 中等
https://leetcode-cn.com/problems/rotate-image/
78. 子集 中等
https://leetcode-cn.com/problems/subsets/
105. 从前序与中序遍历序列构造二叉树 中等
https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
114. 二叉树展开为链表 中等
https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/
3. 无重复字符的最长子串 中等
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
4. 寻找两个正序数组的中位数 困难
https://leetcode-cn.com/problems/median-of-two-sorted-arrays/
11. 盛最多水的容器 中等
https://leetcode-cn.com/problems/container-with-most-water/
15. 三数之和 中等
https://leetcode-cn.com/problems/3sum/
31. 下一个排列 中等
https://leetcode-cn.com/problems/next-permutation/
55. 跳跃游戏 中等
https://leetcode-cn.com/problems/jump-game/
75. 颜色分类 中等
https://leetcode-cn.com/problems/sort-colors/
76. 最小覆盖子串 困难
https://leetcode-cn.com/problems/minimum-window-substring/
283. 移动零 简单
https://leetcode-cn.com/problems/move-zeroes/
581. 最短无序连续子数组 中等
https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray/
32. 最长有效括号 困难
https://leetcode-cn.com/problems/longest-valid-parentheses/
42. 接雨水 困难
https://leetcode-cn.com/problems/trapping-rain-water/
53. 最大子序和 简单
https://leetcode-cn.com/problems/unique-paths/
70. 爬楼梯 简单
https://leetcode-cn.com/problems/climbing-stairs/
96. 不同的二叉搜索树 中等
https://leetcode-cn.com/problems/unique-binary-search-trees/
121. 买卖股票的最佳时机 简单
https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
139. 单词拆分 中等
https://leetcode-cn.com/problems/word-break/
152. 乘积最大子数组 中等
https://leetcode-cn.com/problems/maximum-proct-subarray/
198. 打家劫舍 中等
https://leetcode-cn.com/problems/house-robber/
279. 完全平方数 中等
https://leetcode-cn.com/problems/perfect-squares/
300. 最长递增子序列 中等
https://leetcode-cn.com/problems/longest-increasing-subsequence/
309. 最佳买卖股票时机含冷冻期 中等
https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/
337. 打家劫舍 III 中等
https://leetcode-cn.com/problems/house-robber-iii/
338. 比特位计数 简单
https://leetcode-cn.com/problems/counting-bits/
5. 最长回文子串 中等
https://leetcode-cn.com/problems/longest-palindromic-substring/
10. 正则表达式匹配 困难
https://leetcode-cn.com/problems/regular-expression-matching/
62. 不同路径 中等
https://leetcode-cn.com/problems/unique-paths/
64. 最小路径和 中等
https://leetcode-cn.com/problems/minimum-path-sum/
72. 编辑距离 困难
https://leetcode-cn.com/problems/edit-distance/
221. 最大正方形 中等
https://leetcode-cn.com/problems/maximal-square/
79. 单词搜索 中等
https://leetcode-cn.com/problems/word-search/
94. 二叉树的中序遍历 简单
https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
98. 验证二叉搜索树 中等
https://leetcode-cn.com/problems/validate-binary-search-tree/
101. 对称二叉树 简单
https://leetcode-cn.com/problems/symmetric-tree/
104. 二叉树的最大深度 简单
https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
124. 二叉树中的最大路径和 困难
https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/
226. 翻转二叉树 简单
https://leetcode-cn.com/problems/invert-binary-tree/
236. 二叉树的最近公共祖先 中等
https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/
297. 二叉树的序列化与反序列化 困难
https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/
337. 打家劫舍 III 中等
https://leetcode-cn.com/problems/house-robber-iii/
437. 路径总和 III 中等
https://leetcode-cn.com/problems/path-sum-iii/
538. 把二叉搜索树转换为累加树 中等
https://leetcode-cn.com/problems/convert-bst-to-greater-tree/
543. 二叉树的直径 中等
https://leetcode-cn.com/problems/diameter-of-binary-tree/
617. 合并二叉树 简单
https://leetcode-cn.com/problems/merge-two-binary-trees/
17. 电话号码的字母组合 中等
https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
102. 二叉树的层序遍历 中等
https://leetcode-cn.com/problems/binary-tree-level-order-traversal/
200. 岛屿数量 中等
https://leetcode-cn.com/problems/number-of-islands/
17. 电话号码的字母组合 中等
https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
22. 括号生成 中等
https://leetcode-cn.com/problems/generate-parentheses/
39. 组合总和 中等
https://leetcode-cn.com/problems/combination-sum/
46. 全排列 中等
https://leetcode-cn.com/problems/permutations/
78. 子集 中等
https://leetcode-cn.com/problems/subsets/
79. 单词搜索 中等
https://leetcode-cn.com/problems/word-search/
301. 删除无效的括号 困难
https://leetcode-cn.com/problems/remove-invalid-parentheses/
394. 字符串解码 中等
https://leetcode-cn.com/problems/decode-string/
19. 删除链表的倒数第 N 个结点 中等
https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/
141. 环形链表 简单
https://leetcode-cn.com/problems/linked-list-cycle/
142. 环形链表 II 中等 弗罗里德判圈法
https://leetcode-cn.com/problems/linked-list-cycle-ii/
287. 寻找重复数 中等 弗罗里德判圈法
https://leetcode-cn.com/problems/find-the-plicate-number/
20. 有效的括号 简单
https://leetcode-cn.com/problems/valid-parentheses/
42. 接雨水 困难
https://leetcode-cn.com/problems/trapping-rain-water/
84. 柱状图中最大的矩形 困难
https://leetcode-cn.com/problems/largest-rectangle-in-histogram/
85. 最大矩形 困难
https://leetcode-cn.com/problems/maximal-rectangle/
155. 最小栈 简单
https://leetcode-cn.com/problems/min-stack/
739. 每日温度 中等
https://leetcode-cn.com/problems/daily-temperatures/
33. 搜索旋转排序数组 中等
https://leetcode-cn.com/problems/search-in-rotated-sorted-array/
48. 旋转图像 中等
https://leetcode-cn.com/problems/rotate-image/
96. 不同的二叉搜索树 中等
https://leetcode-cn.com/problems/unique-binary-search-trees/
169. 多数元素 简单
https://leetcode-cn.com/problems/majority-element/
238. 除自身以外数组的乘积 中等
https://leetcode-cn.com/problems/proct-of-array-except-self/
240. 搜索二维矩阵 II 中等
https://leetcode-cn.com/problems/search-a-2d-matrix-ii/
406. 根据身高重建队列 中等
https://leetcode-cn.com/problems/queue-reconstruction-by-height/
34. 在排序数组中查找元素的第一个和最后一个位置 中等
https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/
136. 只出现一次的数字 简单
https://leetcode-cn.com/problems/single-number/
338. 比特位计数 简单
https://leetcode-cn.com/problems/counting-bits/
461. 汉明距离 简单
https://leetcode-cn.com/problems/hamming-distance/
146. LRU 缓存机制 中等
https://leetcode-cn.com/problems/lru-cache/
160. 相交链表 简单
https://leetcode-cn.com/problems/intersection-of-two-linked-lists/
206. 反转链表 简单
https://leetcode-cn.com/problems/reverse-linked-list/
234. 回文链表 简单
https://leetcode-cn.com/problems/palindrome-linked-list/
207. 课程表 中等
https://leetcode-cn.com/problems/course-schele/
208. 实现 Trie (前缀树) 中等
https://leetcode-cn.com/problems/implement-trie-prefix-tree/
215. 数组中的第K个最大元素 中等
https://leetcode-cn.com/problems/kth-largest-element-in-an-array/
239. 滑动窗口最大值 困难
https://leetcode-cn.com/problems/sliding-window-maximum/
347. 前 K 个高频元素 中等
https://leetcode-cn.com/problems/top-k-frequent-elements/
322. 零钱兑换 中等
https://leetcode-cn.com/problems/coin-change/
416. 分割等和子集 中等
https://leetcode-cn.com/problems/partition-equal-subset-sum/
494. 目标和 中等
https://leetcode-cn.com/problems/target-sum/
312. 戳气球 困难
https://leetcode-cn.com/problems/burst-balloons/
322. 零钱兑换 中等
https://leetcode-cn.com/problems/coin-change/
399. 除法求值 中等
https://leetcode-cn.com/problems/evaluate-division/
560. 和为K的子数组 中等
https://leetcode-cn.com/problems/subarray-sum-equals-k/
621. 任务调度器 中等
https://leetcode-cn.com/problems/task-scheler/
二十三、马拉车(中心扩散+对称性)
647. 回文子串 中等
https://leetcode-cn.com/problems/palindromic-substrings/