
leetcode 简单题 easy
进击的桐人
写些心得,不时回看
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode-1381-设计一个支持增量操作的栈-javascript
leetcode题目出处题目请你设计一个支持下述操作的栈。实现自定义栈类 CustomStack :CustomStack(int maxSize):用 maxSize 初始化对象,maxSize 是栈中最多能容纳的元素数量,栈在增长到 maxSize 之后则不支持 push 操作。void push(int x):如果栈还未增长到 maxSize ,就将 x 添加到栈顶。int po...原创 2020-03-19 12:56:49 · 289 阅读 · 0 评论 -
Leetcode-1380-矩阵中的幸运数字-JavaScript
题目给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。幸运数是指矩阵中满足同时下列两个条件的元素:在同一行的所有元素中最小在同一列的所有元素中最大示例示例 1:输入:matrix = [[3,7,8],[9,11,13],[15,16,17]]输出:[15]解释:15 是唯一的幸运数,因为它是其所在行中的最小值,也是所在列中的最大...原创 2020-03-19 11:32:50 · 412 阅读 · 0 评论 -
LeetCode-836-矩形重叠-JavaScript
题目836. 矩形重叠矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true...原创 2020-03-18 14:42:00 · 291 阅读 · 0 评论 -
LeetCode-1160-拼写单词-JavaScript
题目出处题目给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的 长度之和。示例 1:输入:words = ["cat","b...原创 2020-03-18 12:22:11 · 201 阅读 · 0 评论 -
leetcode-面试试题10.01.合并排序的数组
题目给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。初始化 A 和 B 的元素数量分别为 m 和 n。示例:输入:A = [1,2,3,0,0,0], m = 3B = [2,5,6], n = 3输出: [1,2,2,3,5,6]来源:力扣(LeetCode)链接:https://leetcod...原创 2020-03-04 00:01:31 · 290 阅读 · 0 评论 -
53. 最大子序和(JavaScript)
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 解法一:动态规划 求和,然后判断和是否小于0,因为只...原创 2018-07-23 15:52:15 · 1597 阅读 · 0 评论 -
58. 最后一个单词的长度(JavaScript)
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5 思路:没什么难点。先去掉首位的空格,然后以空格分割字符串,成为一个数组,然后返回数组最后一个元素的长度。/** * @param {s...原创 2018-07-23 17:18:39 · 935 阅读 · 0 评论 -
67. 二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"思路:为了遍历起来方便,我先把两个字符串对齐,将短的前面补0,不影响结果。设置进位数count,初始为0原创 2018-07-24 17:00:29 · 254 阅读 · 0 评论 -
69. X的平方根(JavaScript)
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。思路:i 从 0 到 x,当 i 的平方小于等于...原创 2018-07-25 10:59:35 · 807 阅读 · 0 评论 -
771. 宝石与石头(JavaScript)
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:输入: J = "z", S = ".原创 2018-07-25 11:07:14 · 293 阅读 · 0 评论 -
709. 转换成小写字母(JavaScript)
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。 示例 1:输入: "Hello"输出: "hello"示例 2:输入: "here"输出: "here"示例 3:输入: "LOVELY"输出: "lovely"思路:大写字母从 65 到 96,大于 97 的原创 2018-07-25 11:19:57 · 338 阅读 · 0 评论 -
832. 翻转图像
给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0,...原创 2018-07-25 11:47:06 · 343 阅读 · 0 评论 -
657. 判断路线成圈
初始位置 (0, 0) 处有一个机器人。给出它的一系列动作,判断这个机器人的移动路线是否形成一个圆圈,换言之就是判断它是否会移回到原来的位置。移动顺序由一个字符串表示。每一个动作都是由一个字符来表示的。机器人有效的动作有 R(右),L(左),U(上)和 D(下)。输出应为 true 或 false,表示机器人移动路线是否成圈。示例 1:输入: "UD"输出: true示例 2...原创 2018-07-25 12:01:23 · 182 阅读 · 0 评论 -
461. 汉明距离(JavaScript)
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。思路:先将两个数字转换成...原创 2018-07-25 12:31:35 · 806 阅读 · 0 评论 -
852. 山脉数组的峰顶索引(JavaScript)
我们把符合下列属性的数组 A 称作山脉:A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < ... A...原创 2018-07-25 14:09:14 · 447 阅读 · 0 评论 -
617. 合并二叉树(JavaScript)
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 ...原创 2018-07-25 14:32:54 · 1073 阅读 · 1 评论 -
804. 唯一摩尔斯密码词(JavaScript)
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-...","-.-.","-..","原创 2018-07-25 16:52:59 · 538 阅读 · 0 评论 -
226. 翻转二叉树(JavaScript)
翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1思路:如果根节点不为空,那么将左右子结点交换,然后将左右子结点进行递归调用。/** * Definition for a binary...原创 2018-07-25 17:00:25 · 2249 阅读 · 0 评论 -
476. 数字的补数(JavaScript)
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。 你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。...原创 2018-07-26 09:23:54 · 389 阅读 · 0 评论 -
728. 自除数(JavaScript)
自除数 是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例 1:输入: 上边界left = 1, 下边界right = 22输出: [1, 2, 3, 4, 5,...原创 2018-07-26 11:04:28 · 494 阅读 · 0 评论 -
104. 二叉树的最大深度(JavaScript)
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。思路:采用递归,如果当前节点为空,返回0,如果不为空,返回 1 + 左右子...原创 2018-07-26 15:01:18 · 3203 阅读 · 0 评论 -
344. 反转字符串(JavaScript)
请编写一个函数,其功能是将输入的字符串反转过来。示例:输入:s = "hello"返回:"olleh"解法一:转换成数组,使用数组的reverse()函数/** * @param {string} s * @return {string} */var reverseString = function(s) { return s.split('').reverse(...原创 2018-07-26 15:10:19 · 250 阅读 · 0 评论 -
292. Nim游戏(JavaScript)
你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2 块 还是 3 ...原创 2018-07-26 15:16:48 · 449 阅读 · 0 评论 -
500. 键盘行(JavaScript)
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。 示例1:输入: ["Hello", "Alaska", "Dad", "Peace"]输出: ["Alaska", "Dad"]注意:你可以重复使用键盘上同一字符。 你可以假设输入的字符串将只包含字母。思路:对于每个单词,设置三个变量,inline1, inlin原创 2018-07-26 15:58:23 · 294 阅读 · 0 评论 -
557. 反转字符串中的单词 III (JavaScript)
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。思路:将输入的字符串用空格分割,保存在数组里:var words =...原创 2018-07-26 16:14:04 · 721 阅读 · 0 评论 -
867. 转置矩阵(JavaScript)
给定一个矩阵 A, 返回 A 的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]提示:1 <= A.length...原创 2018-07-26 16:37:16 · 1360 阅读 · 0 评论 -
108. 将有序数组转换为二叉搜索树(JavaScript)
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -1...原创 2018-07-26 17:13:18 · 828 阅读 · 0 评论 -
811. 子域名访问计数(JavaScript)
一个网站域名,如"discuss.leetcode.com",包含了多个子域名。作为顶级域名,常用的有"com",下一级则有"leetcode.com",最低的一级为"discuss.leetcode.com"。当我们访问域名"discuss.leetcode.com"时,也同时访问了其父域名"leetcode.com"以及顶级域名 "com"。给定一个带访问次数和原创 2018-07-26 17:48:51 · 313 阅读 · 0 评论 -
1. Two sum 两数之和
给出一个整数数组,返回两个加起来等于目标的数字的下标。假定每个输入只有一个解决方法,每个元素只用一次。例如:输入 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9,所以 return [0, 1]python 版本:def twoSum(nums, target): ...原创 2018-07-21 15:48:03 · 284 阅读 · 0 评论 -
2. Add Two Sum 两数相加
两条非空链表,分别代表两个非负整数。数字逆序,每个节点只含有单个数字。将两个数相加,返回一个链表。数不以0开头,除非数本身就是0.input: (2->4->3) + (5->6->4)output: 7-> 0-> 8解释: 342 + 465 = 807python 版本def addTwoNumbers(l1, l2): ...原创 2018-07-21 16:00:22 · 219 阅读 · 0 评论 -
9. 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。...原创 2018-07-21 16:04:43 · 129 阅读 · 0 评论 -
13. 罗马数组转整数
罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写...原创 2018-07-21 16:11:16 · 394 阅读 · 0 评论 -
14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包原创 2018-07-21 16:15:18 · 122 阅读 · 0 评论 -
20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: ...原创 2018-07-21 16:17:29 · 174 阅读 · 0 评论 -
21. 合并两个有序链表 JavaScript
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:创建一个头节点,值随便给(我给的0),然后用两个指针分别遍历两个链表,把值小的并入到新链表中,值相等就都并入,直到其中有链表遍历完;然后把没遍历完的...原创 2018-07-21 16:24:23 · 1075 阅读 · 0 评论 -
26. 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:...原创 2018-07-21 16:27:30 · 136 阅读 · 0 评论 -
27. 移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...原创 2018-07-21 16:29:38 · 119 阅读 · 0 评论 -
35. 搜索插入位置 JavaScript
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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-07-21 16:30:49 · 355 阅读 · 0 评论 -
167.Two Sum Ⅱ-Input array is sorted 两个数相加(都已排序)
给定一个整型数组,该数组已升序排序,找出两个加起来等于目标数的数字。twoSum函数要返回两个数字的下标,且第一个数字的下标必须小于第二个数字的下标。注意,下标从1开始。每个输出只有一个解法,同一个元素只用一次。input: numbers={2,7,11,15}, target=9output: index1 = 1, index2 = 2python 版本:d...原创 2018-07-22 09:02:47 · 182 阅读 · 0 评论 -
175. 组合两个表
表1:Person 列名 类型 备注 PersonId int 主键 FirstName varchar LastName varchar ...原创 2018-07-22 09:02:39 · 445 阅读 · 0 评论