
Leetcode
J1JJOSH
?
展开
-
【Leetcode】453. 最小移动次数使数组元素相等
QUESTIONeasy题目描述给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。示例:输入:[1,2,3]输出:3解释:只需要3次移动(注意每次移动会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]说明无SOL...原创 2019-04-09 01:30:47 · 479 阅读 · 0 评论 -
【Leetcode】617. 合并二叉树
QUESTIONeasy题目描述给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 ...原创 2019-04-19 16:13:28 · 159 阅读 · 0 评论 -
【Leetcode】503. 下一个更大元素 II
QUESTIONmedium题目描述给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字...原创 2019-04-19 16:52:00 · 164 阅读 · 0 评论 -
【Leetcode】561. 数组拆分 I
QUESTIONeasy题目描述给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).说明n 是正整数,范...原创 2019-04-19 17:10:32 · 283 阅读 · 0 评论 -
【Leetcode】628. 三个数的最大乘积
QUESTIONeasy题目描述给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24说明给定的整型数组长度范围是 [3,104],数组中所有的元素范围是 [-1000, 1000]。输入的数组中任意三个数的乘积不会超出 32 位有符号整数的范围。SOLUT...原创 2019-04-19 17:33:21 · 240 阅读 · 0 评论 -
【Leetcode】643. 子数组最大平均数 I
QUESTIONeasy题目描述给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例 1:输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75说明1 <= k <= n <= 30,000。所给数据范围 [-10,000,10,...原创 2019-04-19 21:13:15 · 176 阅读 · 0 评论 -
【Leetcode】645. 错误的集合
QUESTIONeasy题目描述集合 S 包含从 1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入: nums = [1,2,2,4]输出:...原创 2019-04-19 22:00:17 · 176 阅读 · 0 评论 -
【Leetcode】653. 两数之和 IV - 输入 BST
QUESTIONeasy题目描述给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。案例 1:输入: 5 / \ 3 6 / \ \2 4 7Target = 9输出: True案例 2:输入: 5 / \ 3 6 / \ \2 4 7T...原创 2019-04-19 23:24:19 · 130 阅读 · 0 评论 -
【Leetcode】520. 检测大写字母
QUESTIONeasy题目描述给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如 “USA”。单词中所有字母都不是大写,比如 “leetcode”。如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True...原创 2019-05-23 00:49:16 · 109 阅读 · 0 评论 -
【Leetcode】496. 下一个更大元素 I
QUESTIONeasy题目描述给定两个没有重复元素的数组 nums1 和 nums2 ,其中 nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1。示例 1:输入: nums1 = [4,1,2],...原创 2019-04-19 15:35:33 · 102 阅读 · 0 评论 -
【Leetcode】486. 预测赢家
QUESTIONmedium题目描述给定一个表示分数的非负整数数组。玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,……。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。示例 1:...原创 2019-04-17 18:59:08 · 176 阅读 · 0 评论 -
【Leetcode】476. 数字的补数
QUESTIONeasy题目描述给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。说明给定的整数保证在32位带符号整数的范围内。你可以假定二...原创 2019-04-17 17:01:20 · 163 阅读 · 0 评论 -
【Leetcode】349. 两个数组的交集
QUESTIONeasy题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。SOLUTION...原创 2019-04-03 12:20:48 · 155 阅读 · 0 评论 -
【Leetcode】374. 猜数字大小
QUESTIONeasy题目描述我们正在玩一个猜数字游戏。游戏规则如下:我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。每次你猜错了,我会告诉你这个数字是大了还是小了。你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):-1 : 我的数字比较小1 : 我的数字比较大0 : 恭喜!你猜对了!示例 :输入: n =...原创 2019-04-03 12:38:35 · 89 阅读 · 0 评论 -
【Leetcode】389. 找不同
QUESTIONeasy题目描述给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例:输入:s = "abcd"t = "abcde"输出:'e'解释:'e' 是那个被添加的字母。说明无SOLUTION注意题目中提到了两个关键点只包含小写字母t 是由 s 随机重排后...原创 2019-04-03 14:30:41 · 126 阅读 · 0 评论 -
【Leetcode】409. 最长回文串
QUESTIONeasy题目描述给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。示例 1:输入: "abccccdd"输出: 7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。说明假设字符串的长度不会超过 1010。SOLUTION如果一...原创 2019-04-03 16:34:22 · 110 阅读 · 0 评论 -
【Leetcode】380. 常数时间插入、删除和获取随机元素
QUESTIONmedium题目描述设计一个支持在 平均 时间复杂度 O(1) 下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。示例 :// 初始化一个空的集合。RandomizedSet...原创 2019-04-03 18:00:21 · 176 阅读 · 0 评论 -
【Leetcode】310. 最小高度树
QUESTIONmedium题目描述对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。格式:该图包含 n 个节点,标记为 0 到 n - 1。给定数字 n 和一个无向边 edges 列表(每一个边都是一对标签)。你可以假设没有重复的边会出...原创 2019-04-16 20:40:34 · 374 阅读 · 0 评论 -
【Leetcode】482. 密钥格式化
QUESTIONeasy题目描述给定一个密钥字符串 S,只包含字母,数字以及 ‘-’(破折号)。N 个 ‘-’ 将字符串分成了 N+1 组。给定一个数字 K,重新格式化字符串,除了第一个分组以外,每个分组要包含 K 个字符,第一个分组至少要包含 1 个字符。两个分组之间用 ‘-’(破折号)隔开,并且将所有的小写字母转换为大写字母。给定非空字符串 S 和数字 K,按照上面描述的规则进行格式化...原创 2019-04-17 13:54:12 · 464 阅读 · 0 评论 -
【Leetcode】468. 验证IP地址
QUESTIONmedium题目描述编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。IPv4 地址由十进制数和点来表示,每个地址包含 4 个十进制数,其范围为 0 - 255, 用 (".") 分割。比如,172.16.254.1;同时,IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的。IPv6 地址由 8 组...原创 2019-04-17 15:48:18 · 1247 阅读 · 0 评论 -
【Leetcode】504. 七进制数
QUESTIONeasy题目描述给定一个整数,将其转化为7进制,并以字符串形式输出。示例 1:输入: 100输出: "202"示例 2:输入: -7输出: "-10"说明注意: 输入范围是 [-1e7, 1e7]SOLUTION方法一class Solution {public: string convertToBase7(int num) { ...原创 2019-05-23 12:58:13 · 295 阅读 · 0 评论 -
【Leetcode】509. 斐波那契数
QUESTIONeasy题目描述斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F...原创 2019-05-23 13:18:05 · 170 阅读 · 0 评论 -
【Leetcode】530. 二叉搜索树的最小绝对差
QUESTIONeasy题目描述给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。示例 :输入: 1 \ 3 / 2输出:1解释:最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。说明注意: 树中至少有2个节点。SOLUTION这个问题的关键就是,我们需要知道如何通过 BS...原创 2019-05-27 23:48:03 · 340 阅读 · 0 评论 -
【Leetcode】680. 验证回文字符串 Ⅱ
QUESTIONeasy题目描述给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。说明字符串只包含从 a-z 的小写字母。字符串的最大长度是 50000。SOLUTION从左右开始往中间判断,遇到不相等的则需要分成两个字串来进行判断...原创 2019-06-06 16:51:41 · 130 阅读 · 0 评论 -
【Leetcode】532. 数组中的 K-diff 数对
QUESTIONeasy题目描述给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.示例 1:输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。尽...原创 2019-05-29 14:50:55 · 171 阅读 · 0 评论 -
【Leetcode】594. 最长和谐子序列
QUESTIONeasy题目描述和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是 1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。示例 1:输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3].说明说明: 输入的数组长度最大不超过 20,000SOLUTION先搞清子串和子序列...原创 2019-05-29 15:02:03 · 206 阅读 · 0 评论 -
【Leetcode】575. 分糖果
QUESTIONeasy题目描述给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,...原创 2019-06-04 21:01:32 · 1639 阅读 · 0 评论 -
【Leetcode】804. 唯一摩尔斯密码词
QUESTIONeasy题目描述国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串,比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---"...原创 2019-06-04 21:24:51 · 152 阅读 · 0 评论 -
【Leetcode】771. 宝石与石头
QUESTIONeasy题目描述给定字符串 J 代表石头中宝石的类型,和字符串 S 代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S 中的所有字符都是字母。字母区分大小写,因此 "a" 和 "A" 是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:...原创 2019-06-04 21:47:33 · 124 阅读 · 0 评论 -
【Leetcode】783. 二叉搜索树结点最小距离
QUESTIONeasy题目描述给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。示例:输入: root = [4,2,6,1,3,null,null]输出: 1解释:注意,root是树结点对象(TreeNode object),而不是数组。给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / ...原创 2019-06-04 21:59:59 · 814 阅读 · 0 评论 -
【Leetcode】762. 二进制表示中质数个计算置位
QUESTIONeasy题目描述给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数。(注意,计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有,1 不是质数。)示例 1:输入: L = 6, R = 10输出: 4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 11...原创 2019-06-05 00:04:04 · 197 阅读 · 0 评论 -
【Leetcode】746. 使用最小花费爬楼梯
QUESTIONeasy题目描述数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i] (索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出:...原创 2019-06-06 16:20:30 · 141 阅读 · 0 评论 -
【Leetcode】661. 图片平滑器
QUESTIONeasy题目描述包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的 8 个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1], [1,0,1], [1,1,1]]输出:[[0, 0, 0], [0, 0, 0], [0,...原创 2019-06-06 16:18:25 · 259 阅读 · 0 评论 -
【Leetcode】557. 反转字符串中的单词 III
QUESTIONeasy题目描述给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc"说明在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。SOLUTION由于题目中指出了,不会有多...原创 2019-06-06 12:03:18 · 171 阅读 · 0 评论 -
【Leetcode】605. 种花问题
QUESTIONeasy题目描述假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含 0 和 1,其中 0 表示没种植花,1 表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回 True,不能则返回 False。示例 1:输入: flowerbed ...原创 2019-06-05 18:45:24 · 172 阅读 · 0 评论 -
【Leetcode】674. 最长连续递增序列
QUESTIONeasy题目描述给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 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-06-05 19:11:44 · 141 阅读 · 0 评论 -
【Leetcode】606. 根据二叉树创建字符串
QUESTIONeasy题目描述你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4输出: "1(2(4))(3)"解...原创 2019-06-05 20:47:45 · 157 阅读 · 0 评论 -
【Leetcode】599. 两个列表的最小索引总和
QUESTIONeasy题目描述假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。如果答案不止一个,则输出所有答案并且不考虑顺序。你可以假设总是存在一个答案。示例 1:输入:["Shogun", "Tapioca Express", "Burger King",...原创 2019-06-05 22:16:43 · 161 阅读 · 0 评论 -
【Leetcode】538. 把二叉搜索树转换为累加树
QUESTIONeasy题目描述给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18...原创 2019-05-28 22:34:27 · 116 阅读 · 0 评论 -
【Leetcode】521. 最长特殊序列 Ⅰ
QUESTIONeasy题目描述给定两个字符串,你需要从这两个字符串中找出最长的特殊序列。最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。子序列可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。输入为两个字符串,输出最长特殊序列的长度。如果不存在,则返回 -1。示例 ...原创 2019-05-28 23:00:03 · 168 阅读 · 0 评论