
LeetCode 中等 Medium
文章平均质量分 70
Dgjhvdukb1588hnk
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【LeetCode 中等题】50-不同的二叉搜索树II
题目描述:给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。示例:输入: 3输出:[ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 ...原创 2019-01-06 12:04:27 · 275 阅读 · 1 评论 -
【LeetCode 中等题】55-填充同一层的兄弟节点
题目描述:给定一个二叉树struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。...原创 2019-01-07 17:00:43 · 192 阅读 · 0 评论 -
【LeetCode 中等题】72-下一个排列
题目描述:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1解法1。理解题意,虽然我也不咋理解,找到背后的数学规...原创 2019-01-13 10:17:32 · 144 阅读 · 0 评论 -
【LeetCode 中等题】73-解码方法
题目描述:一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。示例 2:输入: "226"输出: 3解释: 它可以解码为 "原创 2019-01-13 10:59:02 · 138 阅读 · 0 评论 -
【LeetCode 中等题】73-整数拆分
题目描述:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。解法1。递...原创 2019-01-13 11:58:24 · 418 阅读 · 0 评论 -
【LeetCode 中等题】56-填充同一层的兄弟节点II
题目描述:给定一个二叉树struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。...原创 2019-01-08 09:28:26 · 182 阅读 · 0 评论 -
【LeetCode 中等题】74-最长上升子序列
题目描述:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入:[10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log...原创 2019-01-13 16:47:24 · 314 阅读 · 0 评论 -
【LeetCode 中等题】75-分割等和子集
题目描述:给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100 数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 2:输入: [1, 2, 3, 5]输出: false解释:...原创 2019-01-13 17:34:34 · 250 阅读 · 3 评论 -
【LeetCode 中等题】57-三角形最小路径和
题目描述:给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算...原创 2019-01-08 12:09:24 · 160 阅读 · 0 评论 -
【LeetCode 中等题】58-单词接龙
题目描述:给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginW...原创 2019-01-08 19:43:44 · 200 阅读 · 0 评论 -
【LeetCode 中等题】35-最小路径和
题目描述:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解法1。DP做法。创建一个和输入等大小的矩阵,矩阵中的元素赋值方式和前几道DP的...原创 2019-01-03 11:54:18 · 183 阅读 · 0 评论 -
【LeetCode 中等题】54-二叉树展开为链表
题目描述:给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6解法1。递归,根据题意是前序遍历也就是根-左-右,所以抚平后应该是根...原创 2019-01-07 15:55:56 · 153 阅读 · 0 评论 -
【LeetCode 中等题】30-螺旋矩阵II
题目描述:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]解法1。用上下左右4个数来限制,分成4个循环填数,维持一个cur表示当前要填的数字,累加,主要是下标的转换问题,和之前的螺旋矩阵I思路一致。class S...原创 2019-01-02 14:44:54 · 155 阅读 · 0 评论 -
【LeetCode 中等题】70-排序链表
题目描述:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5解法1。归并排序的递归做法,先找到链表的中点,然后原创 2019-01-11 17:10:35 · 132 阅读 · 0 评论 -
【LeetCode 中等题】71-逆波兰表达式求值
题目描述:根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9...原创 2019-01-11 17:38:43 · 235 阅读 · 0 评论 -
【LeetCode 中等题】31-第k个排列
题目描述:给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:"123" "132" "213" "231" "312" "321"给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。 给定 k 的范围是[1, n!]。示例 1:输入: n原创 2019-01-02 15:55:49 · 182 阅读 · 0 评论 -
【LeetCode 中等题】32-旋转链表
题目描述:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2原创 2019-01-02 17:08:03 · 112 阅读 · 0 评论 -
【LeetCode 中等题】51-验证二叉搜索树
题目描述:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ ...原创 2019-01-07 09:50:17 · 463 阅读 · 4 评论 -
【LeetCode 中等题】52-有序链表转二叉搜索树
题目描述:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ ...原创 2019-01-07 11:51:44 · 130 阅读 · 0 评论 -
【LeetCode 中等题】33-不同路径
题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释...原创 2019-01-02 20:53:31 · 144 阅读 · 0 评论 -
【LeetCode 中等题】34-不同路径II
题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[ ...原创 2019-01-02 21:13:05 · 197 阅读 · 0 评论 -
【LeetCode 中等题】53-路径总和II
题目描述:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...原创 2019-01-07 12:31:14 · 144 阅读 · 0 评论 -
【LeetCode 中等题】76-寻找旋转排序数组中的最小值
题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0解法1。因为是旋转数组,所以2子数组内部是有序的...原创 2019-01-14 08:57:07 · 133 阅读 · 0 评论 -
【LeetCode 中等题】77-比较版本号
题目描述:比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和 . 字符。 . 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。你可以假...原创 2019-01-14 09:32:41 · 547 阅读 · 0 评论 -
【LeetCode 中等题 SQL】1-连续出现的数字
题目描述:编写一个 SQL 查询,查找所有至少连续出现三次的数字。+----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |+----+-----+例如,给定上面的 Logs 表, 1...原创 2019-01-14 10:01:12 · 365 阅读 · 0 评论 -
【LeetCode 中等题】78-删除排序链表中的重复项II
题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3解法1,双指针 class Solution(o...原创 2019-01-23 11:04:40 · 134 阅读 · 0 评论 -
【LeetCode 中等题】83-最大数
题目描述:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。备注:python3 sorted取消了对cmp的支持。python3 帮助文档:sorted(iterable,...原创 2019-02-09 15:55:07 · 304 阅读 · 0 评论 -
【LeetCode 中等题】84-重复的DNA序列
题目描述:所有 DNA 由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来查找 DNA 分子中所有出现超多一次的10个字母长的序列(子串)。示例:输入: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出: ["AAAAACCCCC"...原创 2019-02-09 17:03:01 · 494 阅读 · 0 评论 -
【LeetCode 中等题 bash】85-统计词频
题目描述:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。为了简单起见,你可以假设:words.txt只包括小写字母和 ' ' 。 每个单词只由小写字母组成。 单词间由一个或多个空格字符分隔。示例:假设 words.txt 内容如下:the day is sunny the thethe sunny is is你的脚本应当输出(...原创 2019-02-10 12:09:06 · 351 阅读 · 0 评论 -
【LeetCode 中等题 bash】86-转置文件
题目描述:给定一个文件 file.txt,转置它的内容。你可以假设每行列数相同,并且每个字段由 ' ' 分隔.示例:假设 file.txt 文件内容如下:name agealice 21ryan 30应当输出:name alice ryanage 21 30解法1。awk的C语言风格写法,注意格式awk '# 这一部分是循环体,对每一行都执行一次fo...原创 2019-02-10 13:19:55 · 333 阅读 · 0 评论 -
【LeetCode 中等题】87-二叉树的右视图
题目描述:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <---解法1。沿用...原创 2019-02-10 13:59:06 · 796 阅读 · 0 评论 -
【LeetCode 中等题】88-数字范围按位与
题目描述:给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。示例 1: 输入: [5,7]输出: 4示例 2:输入: [0,1]输出: 0解法1。所有连续数字的与其实本质上找的是其二进制表示左边最长公共部分,最小的是m,最大的是n,那么问题就转化成求m和n最长公...原创 2019-02-10 14:58:20 · 256 阅读 · 0 评论 -
【LeetCode 中等题】89-存在重复元素III
题目描述:给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。示例 1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: tru...原创 2019-02-18 10:21:04 · 226 阅读 · 0 评论 -
【LeetCode 中等题】90-完全平方数
题目描述:给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.解法1。用BFS,将问题转化为求n到0经过平方数像阶梯一样下降的最少次...原创 2019-02-19 09:38:29 · 411 阅读 · 0 评论 -
【LeetCode 中等题 SQL】3-第N高的薪水
题目描述:编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,n = 2 时,应返回第二高的薪水 2...原创 2019-02-03 14:40:55 · 253 阅读 · 0 评论 -
【LeetCode 中等题】82-二叉搜索树迭代器
题目描述:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。示例:BSTIterator iterator = new BSTIterator(root);iterator.next(); // 返回 3iterator.next(); // 返回 7iterator.hasNext(); /...原创 2019-02-03 14:06:35 · 200 阅读 · 0 评论 -
【LeetCode 中等题 SQL】2-部门工资最高的员工
题目描述:Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 700...原创 2019-01-14 10:36:18 · 220 阅读 · 0 评论 -
【LeetCode 中等题】59-求根到叶子节点数字之和
题目描述:给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->...原创 2019-01-08 20:11:18 · 370 阅读 · 0 评论 -
【LeetCode 中等题】60-被围绕的区域
题目描述:给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 ...原创 2019-01-08 20:46:04 · 359 阅读 · 0 评论 -
【LeetCode 中等题】61-分割回文串
题目描述:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: "aab"输出:[ ["aa","b"], ["a","a","b"]]解法1。DP+回溯class Solution: def partition(self, s): results = []原创 2019-01-09 19:26:15 · 253 阅读 · 0 评论