
leetcode笔记
leetcode题解
wanghy1995
你能不能像我这样成熟点?
展开
-
575. Distribute Candies
575. 分糖果给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获...原创 2019-12-30 05:29:57 · 114 阅读 · 0 评论 -
836. Rectangle Overlap
836. 矩形重叠矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true示例 ...原创 2019-12-30 05:29:57 · 116 阅读 · 0 评论 -
1025. Divisor Game
1025. 除数博弈爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字N。在每个玩家的回合,玩家需要执行以下操作: 选出任一x,满足0 < x < N 且N % x == 0。 用 N - x替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回True,否则返回 false。假设...原创 2019-12-30 05:29:57 · 155 阅读 · 0 评论 -
674. Longest Continuous Increasing Subsequence
674. 最长连续递增序列给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。 示例 2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为...原创 2019-12-30 05:29:57 · 121 阅读 · 0 评论 -
783. Minimum Distance Between BST Nodes
783. 二叉搜索树结点最小距离给定一个二叉搜索树的根结点root, 返回树中任意两节点的差的最小值。示例:输入: root = [4,2,6,1,3,null,null]输出: 1解释:注意,root是树结点对象(TreeNode object),而不是数组。给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / ...原创 2019-12-30 05:29:57 · 138 阅读 · 0 评论 -
1033. Moving Stones Until Consecutive
1033. 移动石子直到连续三枚石子放置在数轴上,位置分别为 a,b,c。每一回合,我们假设这三枚石子当前分别位于位置 x, y, z 且 x < y < z。从位置 x 或者是位置 z 拿起一枚石子,并将该石子移动到某一整数位置 k 处,其中 x < k < z 且 k != y。当你无法进行任何移动时,即,这些石子的位置连续时,游戏结束。要使游戏结束,你可以执...原创 2019-12-30 05:29:57 · 100 阅读 · 0 评论 -
459. Repeated Substring Pattern
459. 重复的子字符串给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。 示例 2:输入: "aba"输出: False 示例 3:输入: "abca...原创 2019-12-30 05:29:57 · 136 阅读 · 0 评论 -
929. Unique Email Addresses
929. 独特的电子邮件地址每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。例如,在alice@leetcode.com中,alice是本地名称,而leetcode.com是域名。除了小写字母,这些电子邮件还可能包含 '.' 或 '+'。如果在电子邮件地址的本地名称部分中的某些字符之间添加句点('.'),则发往那里的...原创 2019-12-30 05:29:57 · 222 阅读 · 0 评论 -
937. Reorder Log Files
937. 重新排列日志文件你有一个日志数组 logs。每条日志都是以空格分隔的字串。对于每条日志,其第一个字为字母数字标识符。然后,要么: 标识符后面的每个字将仅由小写字母组成,或; 标识符后面的每个字将仅由数字组成。我们将这两种日志分别称为字母日志和数字日志。保证每个日志在其标识符后面至少有一个字。将日志重新排序,使得所有字母日志都排在数字日志之前。字母日志按内容字母顺序排序,...原创 2019-12-30 05:29:57 · 99 阅读 · 0 评论 -
872. Leaf-Similar Trees
872. 叶子相似的树请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列 。举个例子,如上图所示,给定一颗叶值序列为(6, 7, 4, 9, 8)的树。如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。如果给定的两个头结点分别为root1 和root2的树是叶相似的,则返回true;否则返回 false 。提示: 给...原创 2019-12-30 05:29:57 · 80 阅读 · 0 评论 -
205. Isomorphic Strings
205. 同构字符串给定两个字符串s和t,判断它们是否是同构的。如果s中的字符可以被替换得到t,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = "egg",t = "add"输出: true 示例 2:输入: s =...原创 2019-12-30 05:29:57 · 183 阅读 · 0 评论 -
187. Repeated DNA Sequences
187. 重复的DNA序列所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来查找 DNA 分子中所有出现超过一次的 10 个字母长的序列(子串)。示例:输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输...原创 2020-01-05 09:08:49 · 171 阅读 · 0 评论 -
152. Maximum Product Subarray
152. 乘积最大子序列给定一个整数数组 nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。解法一://时间复杂度O(n), 空间复杂度O(1)cl...原创 2019-12-30 05:29:57 · 73 阅读 · 0 评论 -
93. Restore IP Addresses
93. 复原IP地址给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]解法一://时间复杂度O(?), 空间复杂度O(?)class Solution {public: void re...原创 2019-12-30 05:29:57 · 93 阅读 · 0 评论 -
62. Unique Paths
62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为> “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m和 n 的值均不超过 100。示例1:输入: m = 3, n = 2输出:...原创 2019-12-30 05:29:57 · 82 阅读 · 0 评论 -
60. Permutation Sequence
60. 第k个排列给出集合[1,2,3,…,n],其所有元素共有n! 种排列。按大小顺序列出所有排列情况,并一一标记,当n = 3 时, 所有排列如下: "123" "132" "213" "231" "312" "321"给定n 和k,返回第k个排列。说明:...原创 2019-12-30 05:29:57 · 78 阅读 · 0 评论 -
784. Letter Case Permutation
784. 字母大小写全排列给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。示例:输入: S = "a1b2"输出: ["a1b2", "a1B2", "A1b2", "A1B2"]输入: S = "3z4"输出: [...原创 2019-12-30 05:29:57 · 139 阅读 · 0 评论 -
748. Shortest Completing Word
748. 最短完整词如果单词列表(words)中的一个单词包含牌照(licensePlate)中所有的字母,那么我们称之为完整词。在所有完整词中,最短的单词我们称之为最短完整词。单词在匹配牌照中的字母时不区分大小写,比如牌照中的"P"依然可以匹配单词中的"p"字母。我们保证一定存在一个最短完整词。当有多个单词都符合最短完整词的匹配条件时取单词列表中最...原创 2019-12-30 05:29:57 · 104 阅读 · 0 评论 -
290. Word Pattern
290. 单词模式给定一种规律pattern和一个字符串str,判断str 是否遵循相同的规律。这里的遵循指完全匹配,例如,pattern里的每个字母和字符串str中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = "abba", str = "dog cat cat dog" 输出: true示例 ...原创 2019-12-30 05:29:57 · 136 阅读 · 0 评论 -
127. Word Ladder
127. 单词接龙给定两个单词(beginWord和 endWord)和一个字典,找到从beginWord em> 到endWord 的最短转换序列的长度。转换需遵循如下规则: 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。说明: 如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的...原创 2019-12-30 05:29:57 · 92 阅读 · 0 评论 -
819. Most Common Word
819. 最常见的单词给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。示例:输入: paragraph = "Bob hit a ball, the hit BAL...原创 2019-12-30 05:29:57 · 86 阅读 · 0 评论 -
1021. Remove Outermost Parentheses
1021. 删除最外层的括号有效括号字符串为空("")、"(" + A + ")"或A + B,其中A 和B都是有效的括号字符串,+代表字符串的连接。例如,"","()","(())()"和"(()(()))"都是有效的括号字符串。如果有效字符串S非空,且不...原创 2019-12-30 05:29:57 · 166 阅读 · 0 评论 -
665. Non-decreasing Array
665. 非递减数列给定一个长度为n的整数数组,你的任务是判断在最多改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中所有的i (1 <= i < n),满足array[i] <= array[i + 1]。示例 1:输入: [4,2,3]输出: True解释: 你可以通过把第一个4变成1来使得它成为一个非递...原创 2019-12-30 05:29:57 · 132 阅读 · 0 评论 -
941. Valid Mountain Array
941. 有效的山脉数组给定一个整数数组A,如果它是有效的山脉数组就返回true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组: A.length >= 3 在0 < i< A.length - 1条件下,存在i使得: A[0] < A[1] < ... A[i-1] < A[i] A...原创 2019-12-30 05:29:57 · 84 阅读 · 0 评论 -
367. Valid Perfect Square
367. 有效的完全平方数给定一个正整数 num,编写一个函数,如果num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16 输出:True示例 2:输入:14 输出:False 解法一//时间复杂度O(log(46340)), 空间复杂度O(1)class Solution {publi...原创 2019-12-30 05:29:57 · 167 阅读 · 0 评论 -
976. Largest Perimeter Triangle
976. 三角形的最大周长给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示: 3 ...原创 2019-12-30 05:29:57 · 123 阅读 · 0 评论 -
812. Largest Triangle Area
812. 最大三角形面积给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。示例:输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]输出: 2解释: 这五个点如下图所示。组成的橙色三角形是最大的,面积为2。注意: 3 <= points.length <= 50. 不存在重复的点。 -50 ...原创 2019-12-30 05:29:57 · 112 阅读 · 0 评论 -
687. Longest Univalue Path
687. 最长同值路径给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。注意:两个节点之间的路径长度由它们之间的边数表示。示例 1:输入: 5 / \ 4 5 / \ \ 1 1 5输出:2示...原创 2019-12-30 05:29:57 · 133 阅读 · 0 评论 -
80. Remove Duplicates from Sorted Array II
80. 删除排序数组中的重复项 II给定一个排序数组,你需要在原地> 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 > O(1) 额外空间的条件下完成。示例1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1...原创 2019-12-30 05:29:57 · 139 阅读 · 0 评论 -
219. Contains Duplicate II
219. 存在重复元素 II给定一个整数数组和一个整数k,判断数组中是否存在两个不同的索引i和j,使得nums[i] = nums [j],并且 i 和 j的差的绝对值最大为k。示例1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums...原创 2019-12-30 05:29:57 · 118 阅读 · 0 评论 -
680. Valid Palindrome II
680. 验证回文字符串 Ⅱ给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意: 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。解法一//时间复杂度O(n), 空间复杂度O...原创 2019-12-30 05:29:57 · 173 阅读 · 0 评论 -
598. Range Addition II
598. 范围求和 II给定一个初始元素全部为0,大小为 m*n 的矩阵M以及在M上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数a 和 b 的数组表示,含义是将所有符合0 <= i < a 以及 0 <= j < b 的元素M[i][j]的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。...原创 2019-12-30 05:29:57 · 73 阅读 · 0 评论 -
59. Spiral Matrix II
59. 螺旋矩阵 II给定一个正整数n,生成一个包含 1 到n2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]解法一://时间复杂度O(n^2), 空间复杂度O(n^2)class Solution {public: vector<vector...原创 2019-12-30 05:29:57 · 71 阅读 · 0 评论 -
63. Unique Paths II
63. 不同路径 II一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m和 n 的值均不超过 100。示例1:输入:...原创 2019-12-30 05:29:57 · 135 阅读 · 0 评论 -
210. Course Schedule II
210. 课程表 II现在你总共有 n 门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例1:输入: 2, [...原创 2020-01-11 03:25:07 · 185 阅读 · 0 评论 -
884. Uncommon Words from Two Sentences
884. 两句话中的不常见单词给定两个句子A和B。(句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。返回所有不常用单词的列表。您可以按任何顺序返回列表。示例 1:输入:A = "this apple is sweet", B = "this a...原创 2019-12-30 05:29:57 · 79 阅读 · 1 评论 -
1029. Two City Scheduling
1029. 两地调度公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 3...原创 2019-12-30 05:29:57 · 150 阅读 · 0 评论 -
172. Factorial Trailing Zeroes
172. 阶乘后的零给定一个整数 n,返回 n!结果尾数中零的数量。示例 1:输入: 3 输出: 0解释:3! = 6, 尾数中没有零。示例2:输入: 5 输出: 1解释:5! = 120, 尾数中有 1 个零.说明:你算法的时间复杂度应为O(logn)。解法一//时间复杂度O(logn), 空间复杂度O(1)class Solution {publi...原创 2019-12-30 05:29:57 · 176 阅读 · 0 评论 -
150. Evaluate Reverse Polish Notation
150. 逆波兰表达式求值根据逆波兰表示法,求表达式的值。有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例1:输入: ["2", "1", "+", "...原创 2019-12-30 05:29:57 · 78 阅读 · 0 评论 -
917. Reverse Only Letters
917. 仅仅反转字母给定一个字符串S,返回“反转后的”字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例 1:输入:"ab-cd"输出:"dc-ba"示例 2:输入:"a-bC-dEf-ghIj"输出:"j-Ih-gfE-dCba"示例 3:输入:"Test1ng-L...原创 2019-12-30 05:29:57 · 97 阅读 · 0 评论