Javascript Leetcode
文章平均质量分 93
目前已经刷完了Leetcode 2百多到easy 题,此专栏主要记录js刷leetcode题解
Jackshijin
多做少说
展开
-
Leetcode: 剑指offer
使用Javascript解决剑指offer的题目,提供多种思路原创 2021-01-05 18:25:23 · 375 阅读 · 3 评论 -
Leetcode LCP 题目集合(easy)
Leetcode Lcp 合集LCP 17: 有序机器人题目描述:小扣在秋日市集发现了一款速算机器人。店家对机器人说出两个数字(记作 x 和 y),请小扣说出计算指令:“A” 运算:使 x = 2 * x + y;“B” 运算:使 y = 2 * y + x。在本次游戏中,店家说出的数字为 x = 1 和 y = 0,小扣说出的计算指令记作仅由大写字母 A、B 组成的字符串 s,字符串中字符的顺序表示计算顺序,请返回最终 x 与 y 的和为多少。示例 1:输入:s = “AB原创 2020-12-29 11:53:48 · 1269 阅读 · 0 评论 -
Leetcode 374: 猜数字的大小[easy]
题目描述猜数字游戏的规则如下:每轮游戏,我都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0):-1:我选出的数字比你猜的数字小 pick < num1:我选出的数字比你猜的数字大 pick > num0:我选出的数字和你猜的数字一样。恭喜!你猜对了!pick原创 2020-12-28 15:05:29 · 204 阅读 · 0 评论 -
Leetcode 482:密钥格式化
密钥格式化题目描述:有一个密钥字符串 S ,只包含字母,数字以及 ‘-’(破折号)。其中, N 个 ‘-’ 将字符串分成了 N+1 组。给你一个数字 K,请你重新格式化字符串,使每个分组恰好包含 K 个字符。特别地,第一个分组包含的字符个数必须小于等于 K,但至少要包含 1 个字符。两个分组之间需要用 ‘-’(破折号)隔开,并且将所有的小写字母转换为大写字母。给定非空字符串 S 和数字 K,按照上面描述的规则进行格式化来源:力扣(LeetCode)链接:https://leetcode-原创 2020-12-25 18:17:58 · 203 阅读 · 0 评论 -
Leetcode 463: 岛屿的周长
岛屿的周长(EASY)题目描述:给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。来源:力扣(原创 2020-12-25 15:09:24 · 163 阅读 · 0 评论 -
Leetcode 779: 第K个语法符号
题目描述:在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。给定行数N和序数 K,返回第 N 行中第 K个字符。(K从1开始)例子:输入: N = 1, K = 1输出: 0输入: N = 2, K = 1输出: 0输入: N = 2, K = 2输出: 1输入: N = 4, K = 5输出: 1解释:第一行: 0...原创 2020-01-12 10:23:10 · 281 阅读 · 0 评论 -
Leetcode 771: 宝石与石头
题目描述:给定字符串J代表石头中宝石的类型,和字符串S代表你拥有的石头。S中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J中的字母不重复,J和S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:输入: J = "z", S...原创 2020-01-12 10:20:52 · 236 阅读 · 0 评论 -
Leetcode 747: 至少是其他数字两倍的最大数
题目描述:在一个给定的数组nums中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。示例 1:输入: nums = [3, 6, 1, 0]输出: 1解释: 6是最大的整数, 对于数组中的其他整数,6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1.示例 2:输入: nums...原创 2020-01-12 10:18:57 · 306 阅读 · 0 评论 -
Leetcode 728: 自除数
题目描述:自除数是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例 1:输入:上边界left = 1, 下边界right = 22输出: [1, 2, 3,...原创 2020-01-12 10:17:19 · 163 阅读 · 0 评论 -
Leetcode 724: 寻找数组的中心索引
题目描述:给定一个整数类型的数组nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出: 3解释:索...原创 2020-01-12 10:15:50 · 124 阅读 · 0 评论 -
Leetcode 717: 1比特和2比特字符
题目描述:有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10或11)来表示。现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。示例1:输入:bits = [1, 0, 0]输出: True解释:唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。示例2:输入...原创 2020-01-12 10:13:17 · 414 阅读 · 0 评论 -
Leetcode 709: 转换小写字母
题目描述:实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: "Hello"输出: "hello"示例 2:输入: "here"输出: "here"示例3:输入: "LOVELY"输出: "lovely"来源:力扣(LeetCode)链接:https://leet...原创 2020-01-12 10:11:48 · 186 阅读 · 0 评论 -
Leetcode 705: 设计哈希库表
题目描述:不使用任何内建的哈希表库设计一个哈希集合具体地说,你的设计应该包含以下的功能add(value):向哈希集合中插入一个值。contains(value) :返回哈希集合中是否存在这个值。remove(value):将给定值从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。示例:MyHashSet hashSet = new MyHashSet();hash...原创 2020-01-12 10:08:40 · 203 阅读 · 0 评论 -
Leetcode 704: 二分查找
题目描述:给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,...原创 2020-01-12 10:06:26 · 215 阅读 · 0 评论 -
Leetcode 703: 数据流中的第K大元素
题目描述:设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的KthLargest类需要一个同时接收整数k 和整数数组nums的构造器,它包含数据流中的初始元素。每次调用KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2];KthLargest...原创 2020-01-12 10:00:27 · 137 阅读 · 0 评论 -
Leetcode 693: 交替位二进制数
题目描述:给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。示例 1:输入: 5输出: True解释:5的二进制数是: 101示例 2:输入: 7输出: False解释:7的二进制数是: 111示例3:输入: 11输出: False解释:11的二进制数是: 1011来源:力扣(LeetCode)链接:ht...原创 2019-12-17 20:49:55 · 135 阅读 · 0 评论 -
Leetcode 686: 重复叠加字符串匹配
题目描述:给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。举个例子,A = "abcd",B = "cdabcdab"。答案为 3,因为 A 重复叠加三遍后为“abcdabcdabcd”,此时 B 是其子串;A 重复叠加两遍后为"abcdabcd",B 并不是其子串。注意:A与B字符串的长...原创 2019-12-17 20:47:48 · 203 阅读 · 0 评论 -
Leetcode 682: 棒球比赛
题目描述:你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. "+"(一轮的得分):表示本轮获得的得分是前两轮有效回合得分的总和。3. "D"(一轮的得分):表示本轮获得的得分是前一轮有效回合得分的两倍。4. "C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有效回合的分数是无效...原创 2019-12-17 20:46:10 · 181 阅读 · 0 评论 -
Leetcode 680: 验证回文字符串 II
题目描述:给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-palindrome-ii著作权归领扣网络所有。商业转载请联...原创 2019-12-17 20:44:07 · 236 阅读 · 0 评论 -
Leetcode 674: 最长连续递增序列
题目描述:给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。示例 2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为1。注意:...原创 2019-12-17 20:41:55 · 214 阅读 · 0 评论 -
Leetcode 665: 非递减数列
题目描述:给定一个长度为n的整数数组,你的任务是判断在最多改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中所有的i (1 <= i < n),满足array[i] <= array[i + 1]。示例 1:输入: [4,2,3]输出: True解释: 你可以通过把第一个4变成1来使得它成为一个非递减数...原创 2019-12-17 20:40:30 · 178 阅读 · 0 评论 -
Leetcode 657: 机器人能否返回原点
题目描述:在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在(0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R”...原创 2019-12-17 11:16:13 · 206 阅读 · 0 评论 -
Leetcode 645: 错误的集合
题目描述:集合 S 包含从1到n的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入: nums = [1,2,2,4]输出: [2,3]注意:...原创 2019-12-17 11:13:29 · 142 阅读 · 0 评论 -
Leetcode 643:子数组最大平均数I
题目描述:给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例 1:输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75注意:1 <= k <= n <= 30,000。所给数据范围 [-10,000,10,000]。...原创 2019-12-17 11:11:20 · 126 阅读 · 0 评论 -
Leetcode 633: 平方数之和
题目描述:给定一个非负整数c,你要判断是否存在两个整数 a 和 b,使得a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5示例2:输入: 3输出: Fals来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sum-of-square-numbers著作权...原创 2019-12-17 11:08:34 · 148 阅读 · 0 评论 -
Leetcode 628: 三个数的最大乘积
题目描述:给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。来源:力扣(LeetCode)链接:h...原创 2019-12-16 19:01:57 · 158 阅读 · 0 评论 -
Leetcode 622: 设计循环队列
题目描述:设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:...原创 2019-12-16 18:59:35 · 146 阅读 · 0 评论 -
Leetcode 566.重塑矩阵
题目描述:在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1...原创 2019-12-16 18:57:34 · 156 阅读 · 0 评论 -
Leetcode 561: 数组拆分I
题目描述:给定长度为2n的数组, 你的任务是将这些数分成n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n是正整数,范围在 [1, 1...原创 2019-12-16 18:55:24 · 136 阅读 · 0 评论 -
Leetcode 557: 反转字符串中的单词III
题目描述:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc"注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。来源:力扣(LeetCode)链接:https://leetc...原创 2019-12-16 17:54:26 · 122 阅读 · 0 评论 -
Leetcode 551.学生出勤记录II
给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:'A' : Absent,缺勤'L' : Late,迟到'P' : Present,到场如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。示例 1:输入: "PPALLP"输出: True示例 2:...原创 2019-12-16 17:51:03 · 186 阅读 · 0 评论 -
Leetcode 541: 反转字符串II
题目描述:给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"要求:该字符串只包含小写的英文字母。给定字符串的长度...原创 2019-12-16 17:48:55 · 137 阅读 · 0 评论 -
Leetcode 532. 数组中的K-diff数对
题目描述:给定一个整数数组和一个整数k, 你需要在数组里找到不同的k-diff 数对。这里将k-diff数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是k.示例 1:输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。尽管数组中有两个1,但...原创 2019-12-16 17:46:48 · 125 阅读 · 0 评论 -
Leetcode 520: 检测大写字母
题目描述:给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写,比如"Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: ...原创 2019-12-16 17:44:27 · 178 阅读 · 0 评论 -
Leetcode 509: 斐波那契数
题目描述:斐波那契数,通常用F(n) 表示,形成的序列称为斐波那契数列。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定N,计算F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + ...原创 2019-12-16 17:40:20 · 232 阅读 · 0 评论 -
Leetcode 507: 完美数
题目描述:对于一个正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。给定一个整数n,如果他是完美数,返回True,否则返回False示例:输入: 28输出: True解释: 28 = 1 + 2 + 4 + 7 + 14来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/perfect-...原创 2019-12-15 22:59:51 · 196 阅读 · 0 评论 -
Leetcode 506: 相对名次
题目描述:给出N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”("Gold Medal", "Silver Medal", "Bronze Medal")。(注:分数越高的选手,排名越靠前。)示例 1:输入: [5, 4, 3, 2, 1]输出: ["Gold Medal", "Silver Medal"...原创 2019-12-15 22:57:56 · 176 阅读 · 0 评论 -
Leetcode 504: 七进制数
题目描述:给定一个整数,将其转化为7进制,并以字符串形式输出。示例 1:输入: 100输出: "202"示例 2:输入: -7输出: "-10"注意: 输入范围是[-1e7, 1e7] 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/base-7著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出...原创 2019-12-15 22:55:29 · 159 阅读 · 0 评论 -
Leetcode 500: 键盘行
题目描述:给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词用集合/** * @param {string[]} words * @return {string[]} */var findWords = function(words) { let keys = ['qwertyuiop', 'asdfghjkl', 'zxcvbnm']; let...原创 2019-12-15 22:52:48 · 127 阅读 · 0 评论 -
Leetcode 498: 对角线遍历
题目描述:给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]解释:说明:给定矩阵中的元素总数不会超过 100000 。来源:力扣(...原创 2019-12-15 22:48:48 · 221 阅读 · 0 评论