LeetCode简单
LeetCode 难度简单
NekoNekooooo
。。。
展开
-
LeetCode 平衡二叉树
题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。2. 给定二叉树 [1,2,2,3,3,null,null,4,4] ...原创 2018-12-06 21:47:26 · 49 阅读 · 0 评论 -
LeetCode231 2的幂
题目给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: falseC++代码位逻辑运算符的妙用!若一个数为2的幂,则其二进制只有1个1(2^i)。n&(n-1),n-1有点类似于将n的二进制退位(类...原创 2018-10-21 17:38:37 · 42 阅读 · 0 评论 -
LeetCode371 两整数之和
题目不使用运算符 + 和 - ,计算两整数 a 、b 之和。示例示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1C++代码采用位运算。class Solution {public: int getSum(int a, int b) { i...原创 2018-10-25 20:42:40 · 34 阅读 · 0 评论 -
LeetCode383 赎金信
题目给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。注意:你可以假设两个字符串均只含有小写字母。canConstruct(“a”, “b”) -> falsecanConstruct(“aa”, “ab”) ->...原创 2018-10-25 20:13:51 · 88 阅读 · 0 评论 -
LeetCode203 移除链表元素
题目删除链表中等于给定值 val 的所有节点。示例输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5C++代码/** * Definition for singly-linked list. * struct ListNode原创 2018-10-25 18:59:27 · 108 阅读 · 0 评论 -
LeetCode205 同构字符串
题目给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身示例示例 1:输入: s = “egg”, t = “add”输出: true示例 2:输入: s = “foo”, t = “bar”输出: f...原创 2018-10-20 20:45:30 · 56 阅读 · 0 评论 -
LeetCode219 存在重复元素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 = [1,2,3...原创 2018-10-20 19:53:16 · 73 阅读 · 0 评论 -
LeetCode217 存在重复元素I
题目给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: trueC++代码采用了set,因为set中只...原创 2018-10-20 19:06:35 · 64 阅读 · 0 评论 -
LeetCode204 计数质数
题目统计所有小于非负整数 n 的质数的数量。示例输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。C++代码基本判断思路在一般领域,对正整数n,如果用2到sqrt(n)之间的所有整数去除,均无法整除,则n为质数。质数大于等于2 不能被它本身和1以外的数整除注意:题目中要求的是小于非负整数n的质数数量,不包括n这样时间复杂度贼高。。...原创 2018-10-20 19:02:25 · 88 阅读 · 0 评论 -
LeetCode202 快乐数
题目编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例输入: 19输出: true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 =...原创 2018-10-20 18:36:08 · 50 阅读 · 0 评论 -
LeetCode191 位1的个数
题目编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例示例1输入: 11输出: 3解释: 整数 11 的二进制表示为 00000000000000000000000000001011示例 2:输入: 128输出: 1解释: 整数 128 的二进制表示为 00000000000000000000000010000000...原创 2018-10-20 18:06:43 · 50 阅读 · 0 评论 -
LeetCode303 区域和检索-数组不可变
题目给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3说明:你可以假设数组不可...原创 2018-10-22 21:45:42 · 46 阅读 · 0 评论 -
LeetCode283 移动零
题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例输入: [0,1,0,3,12]输出: [1,3,12,0,0]C++代码先找出nums中0的个数n,然后在nums后插入n个0,再从nums首位开始找出第一个0出现的位置,开始删除n个0.class Solution {public: void moveZeroes(ve...原创 2018-10-22 21:21:37 · 47 阅读 · 0 评论 -
LeetCode290 单词模式
题目给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。示例示例1:输入: pattern = “abba”, str = “dog cat cat dog”输出: true示例 2:输入:pattern = “abba...原创 2018-10-22 20:42:41 · 47 阅读 · 0 评论 -
LeetCode258 各位相加
题目给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例输入: 38输出: 2解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?C++代码普通方法:在这里插入代码片...原创 2018-10-21 18:18:27 · 109 阅读 · 0 评论 -
LeetCode268 缺失数字
题目给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8C++代码1. 法1.暴力破解,时间复杂度O(n)class Solution {public: int missingNumber(ve...原创 2018-10-21 19:23:16 · 71 阅读 · 0 评论 -
LeetCode108 将有序数组转换为二叉搜索树
题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5...原创 2018-12-06 21:10:10 · 56 阅读 · 0 评论 -
LeetCode590 N叉树的后序遍历
题目给定一个 N 叉树,返回其节点值的后序遍历。示例例如,给定一个 3叉树 :返回其后序遍历: [5,6,3,2,4,1].说明: 递归法很简单,你可以使用迭代法完成此题吗?C++代码递归法/*// Definition for a Node.class Node {public: int val; vector<Node*> childre...原创 2018-12-03 21:35:13 · 57 阅读 · 0 评论 -
LeetCode589 N叉树的前序遍历
题目给定一个 N 叉树,返回其节点值的前序遍历。示例例如,给定一个 3叉树 :返回其前序遍历: [1,3,5,6,2,4]。说明: 递归法很简单,你可以使用迭代法完成此题吗?C++代码递归/*// Definition for a Node.class Node {public: int val; vector<Node*> children...原创 2018-12-03 20:58:16 · 49 阅读 · 0 评论 -
LeetCode101 对称二叉树
题目给定一个二叉树,检查它是否是镜像对称的。示例例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解决这...原创 2018-10-30 22:02:17 · 60 阅读 · 0 评论 -
LeetCode100 相同的树
题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: ...原创 2018-10-30 21:12:47 · 58 阅读 · 0 评论 -
LeetCode412 Fizz Buzz
题目写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例n = 15,返回:[“1”,“2”,“Fizz”,“4”,“Buzz”,“Fizz”,“7”,“8”,“Fizz”,“Buzz”,“11”,“Fizz”,...原创 2018-10-26 20:56:44 · 59 阅读 · 0 评论 -
LeetCode405 数字转换为十六进制数
题目给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。给定的数确保在32位有符号整数范围内。不能使用任何由库提供的将数字直接转换或格式化为十六进制的方...原创 2018-10-26 20:39:03 · 69 阅读 · 0 评论 -
LeetCode389 找不同
题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例输入:s = “abcd”t = “abcde”输出:e解释:‘e’ 是那个被添加的字母C++代码本来想用set,但是突然想到“abcd”和“aabcd”的输出应该是a,而用set输出会是NULL。所以改为用map<c...原创 2018-10-26 19:38:23 · 53 阅读 · 0 评论 -
LeetCode350 两个数组j的交集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]说明:1.输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。2.我们可以不考虑输出结果的顺序。进阶...原创 2018-10-23 21:07:51 · 49 阅读 · 0 评论 -
LeetCode349 两个数组的交集
题目给定两个数组,编写一个函数来计算它们的交集。示例示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。C++代码不考虑输出结果,且输出结果不存在重复...原创 2018-10-23 20:35:22 · 62 阅读 · 0 评论 -
LeetCode345 反转字符串中的元音字母
题目编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例示例 1:输入: “hello”输出: “holle”示例 2:输入: “leetcode”输出: “leotcede”说明:元音字母不包含字母"y"C++代码元音字母:a,e,i,o,u注意题目中没有说大小写需要区分。设一个字符串temp=“aeiouAEIOU",两个指针:left(s的首位)和ri..原创 2018-10-23 20:23:37 · 119 阅读 · 0 评论 -
LeetCode344 反转字符串
题目编写一个函数,其作用是将输入的字符串反转过来。示例示例 1:输入: “hello”输出: “olleh”示例 2:输入: “A man, a plan, a canal: Panama”输出: “amanaP :lanac a ,nalp a ,nam A”C++代码法1:class Solution {public: string reverseStrin...原创 2018-10-23 20:10:38 · 47 阅读 · 0 评论 -
LeetCode415 字符串相加
题目给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。C++代码主要考虑到进位。设置进位符flagclass Solution {pub...原创 2018-10-25 22:08:30 · 46 阅读 · 0 评论 -
LeetCode278 第一个错误的版本
题目你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错...原创 2018-10-22 19:57:25 · 53 阅读 · 0 评论 -
LeetcCode263 丑数
题目编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例示例 1:输入: 6输出: true解释: 6 = 2 × 3示例 2:输入: 8输出: true解释: 8 = 2 × 2 × 2示例 3:输入: 14输出: false解释: 14 不是丑数,因为它包含了另外一个质因数 7。说明:1.1 是丑数。2.输入不会超过 3...原创 2018-10-22 19:18:13 · 49 阅读 · 0 评论 -
LeetCode38 报数
题目报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:111211211111221n=2时,1 (n=1)被读作 “one 1” (“一个一”) , 即 11。n=3时,11(n=2) 被读作 “two 1s” (“两个一”), 即 21。n=4时,21(n=3) 被读作 “one 2”, “one 1” (“一个二” , “一个一”)...原创 2018-10-15 11:37:31 · 55 阅读 · 0 评论 -
LeetCode125 验证回文串
题目给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: falseC++代码双指针法。运用了isalpha()函数(判断是否为字母字符)和isdi...原创 2018-10-18 10:43:13 · 51 阅读 · 0 评论 -
LeetCode35 探索插入位置
题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例示例1输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出...原创 2018-10-14 14:17:01 · 43 阅读 · 0 评论 -
LeetCode28 实现strStr()
题目实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle...原创 2018-10-13 21:19:37 · 43 阅读 · 0 评论 -
LeetCode27 移除元素
题目给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的...原创 2018-10-13 21:02:47 · 49 阅读 · 0 评论 -
LeetCode26 删除排序数组中的重复项
题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给...原创 2018-10-13 20:28:45 · 58 阅读 · 0 评论 -
LeetCode20 有效的括号
题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例示例1输入: “()”输出: true示例2输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入:...原创 2018-10-19 09:59:06 · 65 阅读 · 0 评论 -
LeetCod14 最长公共前缀
题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例示例1输入: [“flower”,“flow”,“flight”]输出: “fl”示例2输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。C++代码...原创 2018-10-13 20:12:36 · 45 阅读 · 0 评论 -
LeetCode168 Excel表列名称
题目给定一个正整数,返回它在 Excel 表中相对应的列名称。例如,1 -> A2 -> B3 -> C…26 -> Z27 ->原创 2018-10-17 22:19:34 · 66 阅读 · 0 评论