
Leetcode
喵喵寻
一个超级可爱的女孩子
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[LeetCode] 22_括号生成
[LeetCode] 22_括号生成 题目要求 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ “((()))”, “(()())”, “(())()”, “()(())”, “()()()” ] 题目分析 这道题可以用递归地排列组合来做,但有一个限制条件,就是要求是“有效的”组合。 怎么定义有效? 因为题...原创 2018-10-22 12:22:27 · 98 阅读 · 0 评论 -
[LeetCode] 189_旋转数组
[LeetCode] 189_旋转数组 题目要求 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 示例...原创 2018-10-23 23:27:55 · 123 阅读 · 0 评论 -
[LeetCode] 167_两数之和
[LeetCode] 167_两数之和 题目要求 题目分析 重点在于减而治之,抛弃不可能选项 设置i,j分别指向数组的头尾 因为j所指向的数是当前最大的,如果和还是比目标值小,那么i向后移 因为i所指向的数是当前最小的,如果和还是比目标值大,那么j向前移 注意点 注意i和j的初始值 可以在循环内使用while循环减少相等的判断 代码 class Solution { public: ...原创 2018-10-24 15:10:50 · 117 阅读 · 0 评论 -
[LeetCode] 234_回文链表
[LeetCode] 234_回文链表 题目要求 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 题目分析 遍历得到链表的长度 使用相差一个元素的一前一后的两个指针,最开始时前指针指向头,后指针指向NU...原创 2018-10-24 16:13:20 · 114 阅读 · 0 评论 -
[LeetCode] 38_报数
[LeetCode] 38_报数 题目要求 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1 11 21 1211 111221 1 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。 ...原创 2018-10-24 19:31:29 · 149 阅读 · 0 评论 -
[LeetCode] 171_Excel表列序号
[LeetCode] 171_Excel表列序号 题目要求 给定一个Excel表格中的列名称,返回其相应的列序号。 例如, A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入: “A” 输出: 1 示例 2: 输入: “AB” 输出: 28 示例 3: 输入: “ZY” 输出: 701 题目...原创 2018-10-31 23:48:17 · 126 阅读 · 0 评论 -
[LeetCode] 125_同构字符串
[LeetCode] 125_同构字符串 题目要求 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 输入: s = “egg”, t = “add” 输出: true 示例 2: 输入: s = “...原创 2018-11-12 12:17:02 · 1448 阅读 · 0 评论 -
[LeetCode]292_Nim游戏
[LeetCode]292_Nim游戏 题目要求 你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。 你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。 示例: 输入: 4 输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论...原创 2018-11-12 13:41:23 · 190 阅读 · 0 评论 -
[LeeCode] 326_3的幂
[LeeCode] 326_3的幂 题目要求 给定一个整数,写一个函数来判断它是否是 3 的幂次方。 示例 1: 输入: 27 输出: true 示例 2: 输入: 0 输出: false 示例 3: 输入: 9 输出: true 示例 4: 输入: 45 输出: false 不可以使用循环或者递归 题目分析 整型是有范围的,那么就一定存在一个3^n是这个范围内最大的,这里找到n=19。 那么...原创 2018-11-12 13:54:04 · 171 阅读 · 0 评论 -
[Leetcode] 374_猜数字大小
[Leetcode] 374_猜数字大小 题目要求 我们正在玩一个猜数字游戏。 游戏规则如下: 我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。 每次你猜错了,我会告诉你这个数字是大了还是小了。 你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0): -1 : 我的数字比较小 1 : 我的数字比较大 0 : 恭喜!你猜对了! 示例 ...原创 2018-11-24 19:19:16 · 209 阅读 · 0 评论 -
[LeetCode] 404_左叶子之和
[LeetCode] 404_左叶子之和 题目要求 计算给定二叉树的所有左叶子之和。 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 题目分析 对于一个节点,如果是空的,则这条路线的查找结束了 如果不是空的,如果左孩子非空,判断左孩子是否是叶节点,如果是,将值计入sum,如果不是,顺着这条路走下去 如果右孩子非空,判...原创 2018-11-25 00:58:01 · 182 阅读 · 0 评论 -
[LeetCode] 389_找不同
[LeetCode] 389_找不同 题目要求 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例: 输入: s = “abcd” t = “abcde” 输出: e 解释: ‘e’ 是那个被添加的字母。 题目分析 最开始的时候我想到的是最简陋的,定义一个256的数组,对于s进行遍历,统计每...原创 2018-12-12 18:33:49 · 158 阅读 · 0 评论 -
[LeetCode] 58_最后一个单词的长度
[LeetCode] 58_最后一个单词的长度 题目要求 给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指由字母组成,但不包含任何空格的字符串。 示例: 输入: “Hello World” 输出: 5 题目分析 记录空格数和最后一个字符的位置 最后一个字符后面的所有空格从空格数中去掉 遍历字符串,当剩余空...原创 2018-10-23 22:50:42 · 147 阅读 · 0 评论 -
[LeetCode] 111_二叉树的最小深度
[LeetCode] 题目要求 题目分析 注意点 代码原创 2018-10-23 21:39:42 · 152 阅读 · 0 评论 -
[LeetCode] 125_验证回文串
[LeetCode] 125_验证回文串 题目要求 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: “A man, a plan, a canal: Panama” 输出: true 示例 2: 输入: “race a car” 输出: false 题目分析 设置i和j,分别指向字符串的两...原创 2018-10-23 21:38:29 · 130 阅读 · 0 评论 -
[LeetCode] 88_合并两个有序数组
[LeetCode] 88_合并两个有序数组 题目要求 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,...原创 2018-10-22 12:58:09 · 106 阅读 · 0 评论 -
[LeetCode] 35_搜索插入位置
[LeetCode] 35_搜索插入位置 题目要求 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7 输出: 4 示例 4: 输入: ...原创 2018-10-22 13:11:17 · 192 阅读 · 0 评论 -
[LeetCode] 169_寻找众数
[LeetCode] 169_寻找众数 题目要求 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 题目分析 首先设定ans为第一个数,然后从第二个数开始遍历。 如果count等...原创 2018-10-22 13:26:11 · 215 阅读 · 0 评论 -
[LeetCode] 303_区域和检索-数组不可变
[LeetCode] 303_区域和检索-数组不可变 题目要求 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange() sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRang...原创 2018-10-20 19:23:29 · 279 阅读 · 0 评论 -
[LeetCode] 746_使用最小花费爬楼梯
[LeetCode] 746_使用最小花费爬楼梯 题目要求 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi。 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。 示例 1: 输入: cost = [10, 15, 20] 输出...原创 2018-10-20 20:00:20 · 145 阅读 · 0 评论 -
[LeetCode] 7_反转整数
[LeetCode] 7_反转整数 题目要求 给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。 题目分析 ...原创 2018-10-21 12:23:26 · 113 阅读 · 0 评论 -
[LeetCode] 14_最长公共子前缀
[LeetCode] 14_最长公共子前缀 题目要求 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母 a-z 。 题目...原创 2018-10-21 12:55:07 · 387 阅读 · 0 评论 -
[LeetCode] 136_只出现一次的数字
[LeetCode] 136_只出现一次的数字 题目要求 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 题目分析 异或是按位异或,一个数异或他自己一定是0,那么...原创 2018-10-23 17:54:58 · 113 阅读 · 0 评论 -
[LeetCode] 155_最小栈
[LeetCode] 155_最小栈 题目要求 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2...原创 2018-10-23 18:08:15 · 178 阅读 · 0 评论 -
[LeetCode] 20_有效的括号
[LeetCode] 20_有效的括号 题目要求 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: “()” 输出: true 示例 2: 输入: “()[]{}” 输出: true 示例 3: 输入: “(]...原创 2018-10-22 01:43:34 · 110 阅读 · 0 评论 -
[LeetCode] 67_二进制求和
[LeetCode] 67_二进制求和 题目要求 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a = “11”, b = “1” 输出: “100” 示例 2: 输入: a = “1010”, b = “1011” 输出: “10101” 题目分析 将a设定为较长的字符串 从a,b的末尾开始累加,初始进位为0,只有当a...原创 2018-10-23 19:57:07 · 126 阅读 · 0 评论 -
[LeetCode] 507_完美数
[LeetCode] 507_完美数 题目要求 对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。 给定一个 正整数 n, 如果他是完美数,返回 True,否则返回 False 示例: 输入: 28 输出: True 解释: 28 = 1 + 2 + 4 + 7 + 14 注意: 输入的数字 n 不会超过 100,000,000. (1e8) 题目分析 这道题...原创 2019-01-17 16:40:16 · 444 阅读 · 0 评论