LeetCode 简单题
文章平均质量分 58
江江蒋
这个作者很懒,什么都没留下…
展开
-
补:leetcode第191次周赛,1464、1465、1466
补:leetcode弟191次周赛,1464、1465、14661464. 数组中两元素的最大乘积找出最大的两个数class Solution {public: int maxa(vector<int>& a){ int re = 0; for(int i = 0; i < a.size(); i ++) re = max(re, a[i]); return re; } int原创 2020-06-04 16:59:13 · 192 阅读 · 0 评论 -
LeetCode 278. 第一个错误的版本
题目描述: 第一个错误的版本 你是产品经理,目前正在领导一个团队开发一个新产品。不幸的是,您的产品的最新版本没有通过质量检查。由于每个版本都是基于之前的版本开发的,所以错误版本之后的所有版本都是不好的。 假设你有 n 个版本 [1, 2, ..., n],你想找出第一个错误的版本,导致下面所有的错误。 你可以通过 bool isBadVersion(ver...原创 2018-04-27 00:49:01 · 2204 阅读 · 0 评论 -
LeetCode 283. 移动零
题目描述: 移动零 给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序。 例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, 12, 0, 0]。注意事项:必须在原数组上操作,不要为一个新数组分配额外空间。尽量减少操作总数。代码:class Solution {publi...原创 2018-04-27 00:56:19 · 165 阅读 · 0 评论 -
LeetCode——断更
无奈,之前LeetCode突然号就登不上去了,然后就停了这么久,这个月初本来可以登了继续刷题了,但是没及时做出计划耽搁了,接下来继续每天至少一题的速度刷题吧,作为考研的陪伴和调剂,反正对自己有益,题量也不多,开始吧。...原创 2018-06-30 00:28:09 · 141 阅读 · 0 评论 -
LeetCode 290. 单词模式
题目描述: 单词模式给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:输入:pattern = "abba",...原创 2018-06-30 01:18:19 · 537 阅读 · 0 评论 -
LeetCode 110. 平衡二叉树
题目描述: 平衡二叉树 给定一个二叉树,确定它是高度平衡的。 对于这个问题,一棵高度平衡二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过 1。案例 1:给出二叉树 [3,9,20,null,null,15,7]: 3 / \ 9 20 / \ 15 7返回 true 。案例 2:给出二叉树 [1,2,2,3,3,nu...原创 2018-04-07 01:22:22 · 285 阅读 · 0 评论 -
LeetCode 292. Nim游戏
题目描述: Nim游戏你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2 块 ...原创 2018-07-01 00:18:23 · 321 阅读 · 0 评论 -
LeetCode 303. 区域和检索 - 数组不可
题目描述: 区域和检索 - 数组不可给定一个整数数组 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-07-01 00:44:08 · 217 阅读 · 0 评论 -
LeetCode 326. 3的幂
题目描述: 3的幂给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?解题思路: 不用循环或者递归的方法是用int里最大的3的幂1162261467去除n,如果是3的幂就能除断。代...原创 2018-07-01 00:57:09 · 510 阅读 · 0 评论 -
LeetCode 342. 4的幂
题目描述: 4的幂给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂。示例:当 num = 16 时 ,返回 true 。 当 num = 5时,返回 false。问题进阶:你能不使用循环/递归来解决这个问题吗?解题思路: 同3的幂代码:class Solution {public: bool isPowerOfFour(int num) { ...原创 2018-07-01 01:06:59 · 142 阅读 · 0 评论 -
LeetCode 344. 反转字符串
题目描述: 反转字符串请编写一个函数,其功能是将输入的字符串反转过来。示例:输入:s = "hello"返回:"olleh"解题思路: 有一个问题:把s2+=s[len-i-1],改成s2[i] = s[len-i-1],就不行,后面加结束符也不行。看了一会append的源码也没搞懂,猜是申请空间的问题,以后再仔细看看吧代码:class Solution {public: ...原创 2018-07-02 01:36:08 · 839 阅读 · 0 评论 -
LeetCode 232. 用栈实现队列
题目描述: 用栈实现队列使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。pop() -- 从队列首部移除元素。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。注意:你只能使用标准的栈操作-- 也就是只有push to top, peek/pop from top, size, 和 is empty 操作是合法的。你所使用的语言也许不支持栈。...原创 2018-04-21 00:29:18 · 3254 阅读 · 0 评论 -
LeetCode 231. 2的幂
题目描述: 2的幂 给定一个整数,写一个函数来判断它是否是2的幂。代码:class Solution {public: bool isPowerOfTwo(int n) { if(n < 1) return false; while(n != 1) { if(n%2 == 1) return false; ...原创 2018-04-21 00:15:17 · 777 阅读 · 0 评论 -
LeetCode 268. 缺失数字
题目描述: 缺失数字 给出一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。案例 1输入: [3,0,1]输出: 2 案例 2输入: [9,6,4,2,3,5,7,0,1]输出: 8 注意事项: 您的算法应该以线性复杂度运行。你能否仅使用恒定的额外空间复杂度来实现它?解题思路: 1到n的和...原创 2018-04-25 00:44:41 · 271 阅读 · 0 评论 -
LeetCode 237. 删除链表中的节点
题目描述: 删除链表中的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾的)节点,您将只被给予要求被删除的节点。 比如:假设该链表为 1 -> 2 -> 3 -> 4 ,给定您的为该链表中值为 3 的第三个节点,那么在调用了您的函数之后,该链表则应变成 1 -> 2 -> 4 。解题思路: 不太懂这个题?_?代码:...原创 2018-04-23 00:48:56 · 3558 阅读 · 0 评论 -
LeetCode 242. 有效的字母异位词
题目描述: 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。例如, s = "anagram",t = "nagaram",返回 true s = "rat",t = "car",返回 false注意: 假定字符串只包含小写字母。提升难度: 输入的字符串包含 unicode ...原创 2018-04-23 01:12:05 · 429 阅读 · 0 评论 -
LeetCode 206. 反转链表
题目描述: 反转链表 反转一个单链表。进阶: 链表可以迭代或递归地反转。你能否两个都实现一遍?解题思路——迭代: 设置三个指针分别指向连续的三个节点,每次完成节点的反向就把三个节点同时后移,直到所有节点反转。代码:/** * Definition for singly-linked list. * struct ListNode { * in...原创 2018-04-19 01:15:59 · 147 阅读 · 0 评论 -
LeetCode 217. 存在重复
题目描述: 存在重复 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。解题思路: 先给数组排序,然后判断相邻元素是否相等。代码:class Solution {public: bool containsDuplicate(vector<int>...原创 2018-04-19 01:20:25 · 123 阅读 · 0 评论 -
LeetCode 167. 两数之和 II - 输入有序数组
题目描述: 两数之和 II - 输入有序数组给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。请注意,返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入都只有一个解决方案,而且你不会重复使用相同的元素。输入:数组 = {2, 7, 11, 15...原创 2018-04-14 00:40:11 · 1469 阅读 · 0 评论 -
LeetCode 257. 二叉树的所有路径
题目描述: 二叉树的所有路径 给定一个二叉树,返回从根节点到叶节点的所有路径。 例如,给定以下二叉树: 1 / \2 3 \ 5 所有根到叶路径是:["1->2->5", "1->3"]解题思路: 递归到叶节点,然后push进vs,也没什么说的。注意vector要引用,string不要引用。代码:...原创 2018-04-24 00:13:08 · 691 阅读 · 0 评论 -
LeetCode 219. 存在重复 II
题目描述: 存在重复 II 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使 nums [i] = nums [j],并且 i 和 j 的绝对差值最大为 k。解题思路: 题意严重有问题!并且 i 和 j 的绝对差值最大为 k 我的理解是:满足nums[i] = nums[j]的所有 i 和 j 中,他们的绝对值差最大为k。 ...原创 2018-04-20 00:22:33 · 929 阅读 · 0 评论 -
*LeetCode 225. 用队列实现栈
题目描述: 用队列实现栈 使用队列实现栈的下列操作:push(x) --元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() --返回栈是否为空 注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持...原创 2018-04-20 01:31:47 · 4508 阅读 · 1 评论 -
LeetCode 206. 反转链表
题目描述: 反转链表 翻转一棵二叉树。 4 / \ 2 7 / \ / \1 3 6 9 转换为: 4 / \ 7 2 / \ / \9 6 3 1备注: 这个问题是受到 Max Howell 的 原问题 启发 :谷歌:我们90%的工程师使用您编写的软件(Homeb...原创 2018-04-20 01:42:58 · 115 阅读 · 0 评论 -
LeetCode 263. 丑数
题目描述: 丑数 编写程序判断给定的数是否为丑数。 丑数就是只包含质因子 2, 3, 5 的正整数。例如, 6, 8 是丑数,而 14 不是,因为它包含了另外一个质因子 7。注意:1 也可以被当做丑数。输入不会超过32位整数的范围。代码:class Solution {public: bool isUgly(int num) { if(num ...原创 2018-04-25 00:38:07 · 666 阅读 · 0 评论 -
LeetCode 374. 猜数字大小
题目描述: 两整数之和我们正在玩一个猜数字游戏。 游戏规则如下:我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。每次你猜错了,我会告诉你这个数字是大了还是小了。你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):-1 : 我的数字比较小 1 : 我的数字比较大 0 : 恭喜!你猜对了!示例:n = 10, 我选择 6.返回...原创 2018-07-09 12:08:11 · 873 阅读 · 0 评论 -
LeetCode 367. 有效的完全平方数
题目描述: 有效的完全平方数给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。注意:不要使用任何内置的库函数,如 sqrt。示例 1:输入: 16输出: True示例 2:输入: 14输出: False解题思路: 当num很大时,i*i可能是比int大的,所以要用long或者long long。代码:class S...原创 2018-07-04 00:35:43 · 688 阅读 · 0 评论 -
LeetCode 438. 找到字符串中所有字母异位词
题目描述: 找到字符串中所有字母异位词给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。示例 1:输入:s: "cbaebabacd" p: "abc"输出:...原创 2018-07-19 00:40:46 · 725 阅读 · 0 评论 -
LeetCode 441. 排列硬币
题目描述: 排列硬币你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2.示例 2:n = 8硬币可排列成以下几行:¤¤ ¤...原创 2018-07-19 00:45:36 · 573 阅读 · 0 评论 -
LeetCode 412. Fizz Buzz
题目描述: 写一个程序,输出从 1 到 n 数字的字符串表示。1. 如果 n 是3的倍数,输出“Fizz”;2. 如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[ "1", "2", "Fizz", "4", "Buzz", "Fizz", &am原创 2018-07-14 00:41:56 · 164 阅读 · 0 评论 -
LeetCode 414. 第三大的数
题目描述: 第三大的数给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。示例 1:输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.示例 2:输入: [1, 2]输出: 2解释: 第三大的数不存在, 所以返回最大的数 2 .示例 3:输入: [2, 2, 3, 1]输出: 1解释: 注意,要求返回第...原创 2018-07-14 00:58:31 · 223 阅读 · 0 评论 -
LeetCode 443. 压缩字符串
题目描述: 压缩字符串给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。 进阶:你能否仅使用O(1) 空间解决问题? 示例 1:输入:["a","a","b","b","c","c","c"]原创 2018-07-20 01:02:19 · 575 阅读 · 0 评论 -
LeetCode 415. 字符串相加
题目描述: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。解题思路: 先把字符串反转过来, 比较好处理。 然后依次判断有没有...原创 2018-07-15 00:41:03 · 688 阅读 · 0 评论 -
LeetCode 434. 字符串中的单词数
题目描述: 字符串中的单词数统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: "Hello, my name is John"输出: 5解题思路: 被空格隔开的字符串就是单词,所以出现连续的空格就相当于一个单词, 在判断一下开头和结尾的空格就好了代码:class Solution {public: ...原创 2018-07-16 00:47:10 · 615 阅读 · 0 评论 -
LeetCode 453. 最小移动次数使数组元素相等
题目描述: 最小移动次数使数组元素相等给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。示例:输入:[1,2,3]输出:3解释:只需要3次移动(注意每次移动会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]解...原创 2018-07-26 22:31:09 · 664 阅读 · 0 评论 -
LeetCode 455. 分发饼干
题目描述: 分发饼干给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描...原创 2018-07-26 22:40:34 · 449 阅读 · 1 评论 -
LeetCode 447. 回旋镖的数量
题目描述: 回旋镖的数量给定平面上 n 对不同的点,“回旋镖” 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序)。找到所有回旋镖的数量。你可以假设 n 最大为 500,所有点的坐标在闭区间 [-10000, 10000] 中。示例:输入:[[0,0],[1,0],[2,0]]输出:2解释:两个回...原创 2018-07-23 00:29:32 · 395 阅读 · 0 评论 -
LeetCode 409. 最长回文串
题目描述: 最长回文串给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。解题思路: 先排个序,比较好处理。 ...原创 2018-07-13 01:03:17 · 311 阅读 · 0 评论 -
LeetCode 405. 数字转换为十六进制数
题目描述: 数字转换为十六进制数给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符'0'来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给定的数确保在32位有符号整数范围内。不能使用任何由库提供的将数字直接转换或格式...原创 2018-07-13 00:48:35 · 1004 阅读 · 0 评论 -
LeetCode 387. 字符串中的第一个唯一字符
题目描述: 字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.注意事项:您可以假定该字符串只包含小写字母。解题思路: 先统计字符串中,每个字符出现的次数。 然后依次遍历找到第一个次数为1的字符。代码:class ...原创 2018-07-09 12:32:32 · 314 阅读 · 0 评论 -
LeetCode 389. 找不同
题目描述: 找不同给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。 示例:输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。解题思路: 先给两个字符串排序; 然后看哪个位置不一样。代码:class Solution {p...原创 2018-07-09 12:41:50 · 271 阅读 · 0 评论