leetcode
Luyoom
人必有痴,而后有成
展开
-
leetcode 206 反转链表
题目:反转一个单链表示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL题目分析对一个单链表进行转置方法说明迭代在原链表之前增加一个空的指针newHead(不用申请新的结点)从head开始 == 后一个结点移动到newHead后面重复1,2直到head成为末节点代码class Solution {public: ListNode* reverse.原创 2020-06-03 09:47:42 · 127 阅读 · 0 评论 -
leetcode 17 电话号码的字母组合
题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].题目分析要求:根据数字寻找字母组合分析每一个位置根据数字选择一个字母组合 ==> ...原创 2020-04-07 22:47:29 · 140 阅读 · 0 评论 -
leetcode 60 第k个排列
题目给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。示例 1:输入: n = 3, k = 3输出: “213”示例 2:输入: n = 4, k = 9输出: “2314”...原创 2020-04-06 23:36:52 · 186 阅读 · 0 评论 -
leetcode 31下一个排列
题目实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1题目分析要求:求下一个字典序排列分析...原创 2020-04-05 10:57:11 · 150 阅读 · 0 评论 -
leetcode 47 全排列 II
题目给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]题目分析要求:返回所有不重复的全排列分析对排列的每一个位置放一个数寻找不同的排列例如输入:[1,1,2]对于第一个位置选1则第二个位置可选[1,2]第三个位置可选[2]解题思路变量作用说明...原创 2020-04-04 23:09:40 · 165 阅读 · 0 评论 -
leetcode 46 全排列
给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]题目分析要求:进行全排列分析对于全排列的第n个位置有 n - 1 的元素可以选择确定第n个元素的后确定第n + 1个元素 ==> 递归例如:输入[1,2...原创 2020-04-03 16:40:02 · 148 阅读 · 0 评论 -
leetcode 377 组合总和 IV
题目给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。示例:nums = [1, 2, 3]target = 4所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。因此输出为 7。题目分析要求:和为目标值的元...原创 2020-04-02 09:39:36 · 161 阅读 · 0 评论 -
leetcode 216组合总和III
题目找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]题目分析要求 :和为n ...原创 2020-04-01 10:00:51 · 130 阅读 · 0 评论 -
leetcode 40 数组总和II
题目给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为...原创 2020-03-31 14:48:29 · 159 阅读 · 0 评论 -
leetcode 39 组合总和
题目给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]示例 2:输入: candidates ...原创 2020-03-30 08:33:24 · 128 阅读 · 0 评论 -
leetcode 78 子集
题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]题目分析要求:求数组的所有子集分析取数组中的元素对当前的子集 ==> 插入元素 ==> ...原创 2020-03-29 09:27:50 · 116 阅读 · 0 评论 -
leetcode 105 从前序与中序遍历序列构造二叉树
题目根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7题目分析要求:前序遍历 + 中序遍历 ==> 构造二叉树...原创 2020-03-28 23:14:23 · 132 阅读 · 0 评论 -
leetcode 114 二叉树展开为有序链表
题目:给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6题目分析要求:二叉树 ==> 按中序遍历结果 ==>链表...原创 2020-03-27 10:52:14 · 185 阅读 · 0 评论 -
leetcode 108 将有序数组转换为二叉搜索树
题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5]它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -...原创 2020-03-26 08:24:50 · 176 阅读 · 0 评论 -
leetcode 236 二叉树的最近公共祖先
题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3...原创 2020-03-25 08:52:18 · 173 阅读 · 0 评论 -
leetcode 235 二叉搜索树的最近公共祖先
二叉搜索树?最近公共祖先!题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root =[6,2,8,0,4,7,9,null,null,3,5]示例...原创 2020-03-24 07:48:02 · 170 阅读 · 0 评论 -
leetcode 98 验证二叉搜索树
题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6...原创 2020-03-23 08:11:35 · 135 阅读 · 0 评论 -
leetcode 199 二叉树的右视图
二叉树?右视图题目:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <---题目分析...原创 2020-03-22 13:38:55 · 158 阅读 · 0 评论 -
leetcode 103 二叉树的锯齿形层次遍历
题目:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]题目分析要求从上往...原创 2020-03-21 09:41:34 · 191 阅读 · 0 评论 -
leetcode 107 二叉树的层次遍历II
二叉树?层次遍历!题目:给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]题目分析...原创 2020-03-20 08:43:36 · 128 阅读 · 0 评论 -
leetcode 337 打家劫舍III
盗取最多的钱!题目:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1...原创 2020-03-19 11:14:12 · 138 阅读 · 0 评论 -
leetcode 124 二叉树中的最大路径和
二叉树?最大路径和!题目:给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。例子示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7] -10 / \ 9 2...原创 2020-03-18 11:25:44 · 115 阅读 · 0 评论 -
leetcode 110 平衡二叉树
是否是平衡二叉树?题目:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。例子:示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,...原创 2020-03-17 23:16:19 · 131 阅读 · 0 评论 -
leetcode 111 二叉树的最小深度
二叉树?最小深度!题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。例子:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \15 7返回它的最小深度 2.题目描述目标:根结点到最近的叶子结点结点数量把所有根结...原创 2020-03-16 09:12:50 · 124 阅读 · 0 评论 -
leetcode 129 求根到叶子节点数字之和
二叉树?生成数字之和!题目给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。例子示例 1:输入: [1,2,3] 1 / \2 3输出: 25解释:从根到叶子...原创 2020-03-15 11:04:19 · 216 阅读 · 0 评论 -
leetcode 路径总和 II
二叉树?路径和!题目给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。例子示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ ...原创 2020-03-14 15:34:05 · 162 阅读 · 0 评论 -
leetcode 112 路径总和
二叉树?路径总和!题目给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。例子给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...原创 2020-03-13 14:46:31 · 112 阅读 · 0 评论 -
leetcode 257 二叉树的所有路径
二叉树?寻找路径!题目给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。例子输入:—1–/ – \ 2 — 3-\–5输出: [“1->2->5”, “1->3”]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3题目分析起点:根结点终点:叶子结点从根结点...原创 2020-03-12 19:28:18 · 186 阅读 · 0 评论 -
leetcode 226 翻转二叉树
二叉树? 翻转!题目翻转一棵二叉树。例子示例:输入:-----4---- / \ ----2–7—/ \ -/ \–1 3 6 9输出:----4----/ \ – 7 - 2–/ \ - / \-9 6 3 1题目分析翻转二叉树左右子树对称交换一颗二叉树对称左右子树的指针交换二叉树对称其子树也对称 =...原创 2020-02-04 23:05:05 · 128 阅读 · 0 评论 -
leetcode 101对称二叉树
二叉树?对称!题目:给定一个二叉树,检查它是否是镜像对称的例子:二叉树 [1,2,2,3,4,4,3] 是对称的— 1– /—\–2----2-/-\ – /-\3 4-- 4 3题目分析对称二叉树1.左右子树 ==> 结构相同2.左右子树 ==> 对应位置数字相同二叉树对称 ==> 左右子树相同对于当前根结点左子树的右子...原创 2020-02-02 14:09:15 · 207 阅读 · 0 评论 -
leetcode 100 相同的树
二叉树?是否相同?题目:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。例子:示例 1:输入:–1 ------ 1- / \ ----- / \2 - 3 – 2 - 3[1,2,3], [1,2,3]输出: true示例 2:输入:—1 — 1...原创 2020-01-28 11:19:10 · 157 阅读 · 0 评论 -
leetcode 102 二叉树的层次遍历
二叉树?层次遍历!题目:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例子:给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回其层次遍历结果:[[3],[9,20],[15,7]]题目分析层次遍历从上到下从左到右按顺序保存每个结点 --> 队列(...原创 2020-01-25 16:49:31 · 184 阅读 · 0 评论 -
leetcode 94 二叉树的中序遍历(非递归)
二叉树?中序遍历题目:给定一个二叉树,返回它的中序 遍历例子:输入: [1,null,2,3]1\ 2/3输出: [1,3,2]题目分析中序遍历:左子树根节点右子树递归三行解决非递归? 栈 保存节点信息解题思路变量作用stack<TreeNode*> s保存节点信息TreeNode* temp...原创 2020-01-16 21:14:28 · 218 阅读 · 0 评论 -
leetcode 145 二叉树的后序遍历(非递归)
二叉树?后序遍历!题目:给定一个二叉树,返回它的 后序 遍历。例子:输入: [1,null,2,3]1\ 2/3输出: [3,2,1]题目分析后续遍历右子树根节点左子树递归三行解决不使用递归? 栈 保存节点信息 即可解题思路变量作用stack < Treenode * > s保存节点信息TreeNode * ...原创 2020-01-16 15:35:38 · 442 阅读 · 0 评论 -
leetcode 144 二叉树的前序遍历(非递归)
二叉树?前序遍历!题目:给定一个二叉树,返回它的 前序 遍历。例子:输入: [1,null,2,3]1\2/3输出: [1,2,3]题目分析前序遍历根结点左子树右子树递归三行解决不使用递归? 栈 保存结点信息 即可!解题思路变量作用stack < Treenode * > s保存结点信息TreeNode ...原创 2020-01-11 21:04:13 · 167 阅读 · 0 评论 -
leetcode 368 最大整除子数集(动态规划)
相互整除?最多个数!题目:给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对 (Si,Sj) 都要满足:Si % Sj = 0 或 Sj % Si = 0。样例:示例 1:输入: [1,2,3]输出: [1,2] (当然, [1,3] 也正确)示例 2:输入: [1,2,4,8]输出: [1,2,4,8]题目分析假设当前最大整除子集个数为 n...原创 2020-01-11 00:07:19 · 446 阅读 · 0 评论 -
leetcode 397整数替换
如何出现 1?最小次变1!题目如下:给定一个正整数 n,你可以做如下操作:(1) 如果 n 是偶数,则用 n / 2替换 n。(2) 如果 n 是奇数,则可以用 n + 1或n - 1替换 n。n 变为 1 所需的最小替换次数是多少?示例 1:输入:8输出:3解释:8 -> 4 -> 2 -> 1示例 2:输入:7输出:4解释:7 -&...原创 2019-12-25 21:47:19 · 186 阅读 · 0 评论 -
leetcode 357计算各个位数不同的数字个数
数字都不同?排列组合安排上!题意如下:给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10^n 。示例:输入: 2输出: 91解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字。分析题目先举个栗子n = 1即 x∈[0 , 10)x = 0 1 2 3 4 5...原创 2019-12-24 21:35:17 · 380 阅读 · 0 评论 -
leetcode 390 消除游戏
隔排消除!谁是最后的幸存者?题意如下:给定一个从1 到 n 排序的整数列表。首先,从左到右,从第一个数字开始,每隔一个数字进行删除,直到列表的末尾。第二步,在剩下的数字中,从右到左,从倒数第一个数字开始,每隔一个数字进行删除,直到列表开头。我们不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。返回长度为 n 的列表中,最后剩下的数字。示例:输入:n = 9,...原创 2019-12-22 14:58:35 · 198 阅读 · 0 评论 -
leetcode 264 丑数2
丑数进阶版 !到底是第几个丑?此题是在原来丑数的基础上寻找第几个丑数失败尝试想直接判断打表1690内的所有丑数果不其然 超时福利放送一个个判断不行那就需要寻找 数据规律 了观察可得丑数的基础上乘 2, 3, 5 仍然是丑数 – 简化判断所以丑数可以由以下列表组成21* 2 2 * 2 3 * 2 4 * 231* 3 ...原创 2019-12-18 00:39:51 · 141 阅读 · 0 评论