
LeetCode--C++
quekai01
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
242. 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true示例 2: 输入: s = “rat”, t = “car” 输出: false说明: 你可以假设字符串只包含小写字母。进阶: 如果输入字符串包含 unicode 字符怎...原创 2018-09-08 02:25:32 · 203 阅读 · 0 评论 -
257. 二叉树的所有路径
给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例: 输入: 1 / \ 2 3 \ 5 输出: [“1->2->5”, “1->3”] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3重点内容...原创 2018-09-08 02:56:05 · 273 阅读 · 0 评论 -
258. 各位相加
258. 各位相加给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶: 你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?递归:class Solution {pu...原创 2018-09-08 03:38:12 · 438 阅读 · 0 评论 -
412. Fizz Buzz
412. Fizz Buzz写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例: n = 15, 返回: [ “1”, “2”, “Fizz”, “4”, ...原创 2018-09-11 14:34:01 · 133 阅读 · 0 评论 -
414. 第三大的数
414. 第三大的数给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1.示例 2: 输入: [1, 2] 输出: 2 解释: 第三大的数不存在, 所以返回最大的数 2 .示例 3: 输入: [2,...原创 2018-09-11 18:37:11 · 171 阅读 · 0 评论 -
415. 字符串相加
415. 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。分析: 逐位相加,要考虑到字符串长度不相等的情况。c...原创 2018-09-11 19:24:49 · 187 阅读 · 0 评论 -
263. 丑数
263. 丑数编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例 1: 输入: 6 输出: true 解释: 6 = 2 × 3示例 2: 输入: 8 输出: true 解释: 8 = 2 × 2 × 2示例 3: 输入: 14 输出: false 解释: 14 不是丑数,因...原创 2018-09-09 00:11:38 · 177 阅读 · 0 评论 -
268. 缺失数字
268. 缺失数字给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1: 输入: [3,0,1] 输出: 2示例 2: 输入: [9,6,4,2,3,5,7,0,1] 输出: 8说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?差值法:class Solu...原创 2018-09-09 01:01:57 · 124 阅读 · 0 评论 -
278. 第一个错误的版本
278. 第一个错误的版本你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 vers...原创 2018-09-09 01:17:32 · 119 阅读 · 0 评论 -
427. 建立四叉树
427. 建立四叉树我们想要使用一棵四叉树来储存一个 N x N 的布尔值网络。网络中每一格的值只会是真或假。树的根结点代表整个网络。对于每个结点, 它将被分等成四个孩子结点直到这个区域内的值都是相同的.每个结点还有另外两个布尔变量: isLeaf 和 val。isLeaf 当这个节点是一个叶子结点时为真。val 变量储存叶子结点所代表的区域的值。你的任务是使用一个四叉树表示给定的网络...原创 2018-09-11 23:30:45 · 736 阅读 · 0 评论 -
429. N叉树的层序遍历
429. N叉树的层序遍历给定一个N叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。例如,给定一个 3叉树 : 返回其层序遍历: [ [1], [3,2,4], [5,6] ]说明:树的深度不会超过 1000。 树的节点总数不会超过 5000。 分析:用队列就能简便地进行层序遍历。/*// D...原创 2018-09-11 23:52:48 · 145 阅读 · 0 评论 -
434. 字符串中的单词数
434. 字符串中的单词数统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例: 输入: “Hello, my name is John” 输出: 5 分析: 用isspace函数判断空格,非空格计数一次后跳过。要注意这里地单词不一定指英文单词,可能是非空格的符号。class Solutio...原创 2018-09-12 00:23:27 · 274 阅读 · 0 评论 -
283. 移动零
283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 分析:用vector函数erase()和push_back()操作,要注意删除后index的变动。...原创 2018-09-09 14:10:01 · 120 阅读 · 0 评论 -
290. 单词模式
290. 单词模式给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。示例1: 输入: pattern = “abba”, str = “dog cat cat dog” 输出: true示例 2: ...原创 2018-09-09 15:00:50 · 105 阅读 · 0 评论 -
292. Nim游戏
292. Nim游戏你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例: 输入: 4 输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; ...原创 2018-09-09 15:29:44 · 165 阅读 · 0 评论 -
303. 区域和检索 - 数组不可变
303. 区域和检索 - 数组不可变给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange() sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRan...原创 2018-09-09 15:39:49 · 320 阅读 · 0 评论 -
344. 反转字符串
344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。示例 1: 输入: “hello” 输出: “olleh”示例 2: 输入: “A man, a plan, a canal: Panama” 输出: “amanaP :lanac a ,nalp a ,nam A”分析:用algorithm中的reverse函数即可。class ...原创 2018-09-09 15:54:24 · 219 阅读 · 0 评论 -
345. 反转字符串中的元音字母
345. 反转字符串中的元音字母编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1: 输入: “hello” 输出: “holle”示例 2: 输入: “leetcode” 输出: “leotcede”说明: 元音字母不包含字母”y”。分析:元音字母为a,e,i,o,u,A,E,I,O,U,考虑大小写。class Sol...原创 2018-09-09 16:14:43 · 193 阅读 · 0 评论 -
349. 两个数组的交集
349. 两个数组的交集给定两个数组,编写一个函数来计算它们的交集。示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2]示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [9,4]说明:输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果...原创 2018-09-09 16:38:13 · 108 阅读 · 0 评论 -
437. 路径总和 III
437. 路径总和 III给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例: root = [10,5,-3,3,2,null,11,3,-2,...原创 2018-09-12 21:59:27 · 140 阅读 · 0 评论 -
438. 找到字符串中所有字母异位词
438. 找到字符串中所有字母异位词给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。 示例 1: 输入: s: “cbaebabacd” p: “abc”...原创 2018-09-12 23:38:25 · 123 阅读 · 0 评论 -
441. 排列硬币
441. 排列硬币你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例 1: n = 5 硬币可排列成以下几行: ¤ ¤ ¤ ¤ ¤ 因为第三行不完整,所以返回2.示例 2: n = 8 ...原创 2018-09-12 23:55:18 · 159 阅读 · 0 评论 -
350. 两个数组的交集 II
350. 两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2]示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出...原创 2018-09-10 20:56:22 · 102 阅读 · 0 评论 -
367. 有效的完全平方数
367. 有效的完全平方数给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1: 输入: 16 输出: True示例 2: 输入: 14 输出: False分析: 一个一个找会超时,考虑用二分法。 方法一:class Solut...原创 2018-09-10 22:27:40 · 195 阅读 · 0 评论 -
371. 两整数之和
371. 两整数之和不使用运算符 + 和 -,计算两整数 a、b 之和。示例 1: 输入: a = 1, b = 2 输出: 3示例 2: 输入: a = -2, b = 3 输出: 1分析: 考虑用移位运算符进行加法运算。用异或算出不进位加法结果,用与运算算出要进位的位,然后左移得到进位的正确位置,循环直到...原创 2018-09-10 22:56:03 · 300 阅读 · 0 评论 -
374. 猜数字大小
374. 猜数字大小我们正在玩一个猜数字游戏。 游戏规则如下: 我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。 每次你猜错了,我会告诉你这个数字是大了还是小了。 你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0): -1 : 我的数字比较小 1 : 我的数字比较大 0 : 恭喜!你猜对了!示...原创 2018-09-10 23:05:06 · 222 阅读 · 0 评论 -
383. 赎金信
383. 赎金信给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。 canCons...原创 2018-09-10 23:23:14 · 118 阅读 · 0 评论 -
387. 字符串中的第一个唯一字符
387. 字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例: s = “leetcode” 返回 0. s = “loveleetcode”, 返回 2.注意事项:您可以假定该字符串只包含小写字母。class Solution {public: int firstUniqCh...原创 2018-09-10 23:29:53 · 131 阅读 · 0 评论 -
389. 找不同
389. 找不同给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。 示例: 输入: s = “abcd” t = “abcde” 输出: e 解释: ‘e’ 是那个被添加的字母。class Solution {public: ch...原创 2018-09-10 23:36:53 · 313 阅读 · 0 评论 -
400. 第N个数字
400. 第N个数字在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 个数字。注意: n 是正数且在32为整形范围内 ( n < 231)。示例 1: 输入: 3 输出: 3示例 2: 输入: 11 输出: 0说明: 第11个数字在序列 1, 2, 3, 4,...原创 2018-09-11 00:44:55 · 162 阅读 · 0 评论 -
401. 二进制手表
401. 二进制手表二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。 例如,上面的二进制手表读取 “3:25”。给定一个非负整数 n 代表当前 LED 亮着的数量,返回所有可能的时间。案例: 输入: n = 1 返回: [“1:00”, “2:00”, “4:...原创 2018-09-11 01:00:33 · 199 阅读 · 0 评论 -
404. 左叶子之和
404. 左叶子之和计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24分析:刚开始没注意是左叶子节点,把所有左孩子的根节点之和找出来了。要判断是否是叶子节点。/** * Definition for a binar...原创 2018-09-11 01:33:26 · 158 阅读 · 0 评论 -
405. 数字转换为十六进制数
405. 数字转换为十六进制数给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。 十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符'0'来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给定的数确保在32位有符号整数范围内。 不能使用任何由库提供...原创 2018-09-11 01:53:57 · 599 阅读 · 0 评论 -
409. 最长回文串
409. 最长回文串给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。注意: 假设字符串的长度不会超过 1010。示例 1: 输入: “abccccdd” 输出: 7 解释: 我们可以构造的最长的回文串是”dccaccd”, 它的长度是 7。...原创 2018-09-11 02:17:36 · 314 阅读 · 0 评论 -
443. 压缩字符串
443. 压缩字符串给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。进阶: 你能否仅使用O(1) 空间解决问题?示例 1: 输入: [“a”,”a”,”b”,”b”,”c”,”c”,”c”] 输出: 返回6,输...原创 2018-09-13 14:19:32 · 267 阅读 · 0 评论 -
447. 回旋镖的数量
447. 回旋镖的数量给定平面上 n 对不同的点,“回旋镖” 是由点表示的元组 (i, j, k) ,其中i和 j之间的距离和 i和 k之间的距离相等(需要考虑元组的顺序)。找到所有回旋镖的数量。你可以假设 n 最大为 500,所有点的坐标在闭区间 [-10000, 10000] 中。示例: 输入: [[0,0],[1,0],[2,0]] 输出: 2 解...原创 2018-09-13 15:02:33 · 276 阅读 · 0 评论 -
448. 找到所有数组中消失的数字
448. 找到所有数组中消失的数字给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例: 输入: [4,3,2,7,8,2,...原创 2018-09-13 15:28:04 · 348 阅读 · 0 评论 -
453. 最小移动次数使数组元素相等
453. 最小移动次数使数组元素相等给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。示例: 输入: [1,2,3] 输出: 3 解释: 只需要3次移动(注意每次移动会增加两个元素的值): [1,2,3] => [2,3,3] => [3,4,3] =>...原创 2018-09-13 18:01:29 · 194 阅读 · 0 评论 -
455. 分发饼干
455. 分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可...原创 2018-09-13 18:52:04 · 188 阅读 · 0 评论 -
458. 可怜的小猪
458. 可怜的小猪有1000只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在15分钟内死去。问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪?回答这个问题,并为下列的进阶问题编写一个通用算法。进阶:假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出“有毒...原创 2018-09-13 20:12:10 · 578 阅读 · 2 评论