算法
js算法练习
zhener09
每天前进一小步。
展开
-
leetcode17:js实现电话号码的字母组合
题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].// 数字对应的字母const numberToAlpha = ['', '', 'abc', 'def',...原创 2020-01-05 12:55:40 · 371 阅读 · 0 评论 -
leetcode914:js卡牌分组
题目:给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。解题思路:将[1,2,3,4,4,4,4,3,2,1]转化为{‘1’: 2,‘2’: 2,‘3’: 2,‘4’: 4},也就是将数组的值当做键,值为这个数...原创 2020-01-05 23:28:36 · 189 阅读 · 0 评论 -
leetcode605:js种花问题
题目:假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n = 1输出:...原创 2020-01-07 23:18:09 · 351 阅读 · 0 评论 -
leetcode89:js格雷编码
题目:格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列。00 - 0...原创 2020-01-12 15:44:32 · 104 阅读 · 0 评论 -
leetcode459:js重复的子字符串
题目:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: “abab”输出: True解释: 可由子字符串 “ab” 重复两次构成。示例 2:输入: “aba”输出: False示例 3:输入: “abcabcabcabc”输出: True解释: 可由子字符串 “abc” 重复四次构成。 ...原创 2020-01-12 16:10:15 · 289 阅读 · 0 评论 -
leetcode10:js正则表达式匹配
题目:给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘’ 的正则表达式匹配。‘.’ 匹配任意单个字符'’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 。示例 1:输入:s = “aa”p = “...原创 2020-01-12 22:57:49 · 528 阅读 · 0 评论 -
leetcode922:js实现按奇偶排序数组
题目:给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。const arr = [4, 2, 5, 7];const sort = (arr) => { let result = []; for (let k = ...原创 2020-01-21 20:07:28 · 203 阅读 · 0 评论 -
leetcode215:js实现数组中的第K个最大元素
题目:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4const array = [3, 2, 1, 5, 6, 4];const K = 2;// 第...原创 2020-01-22 09:29:25 · 1054 阅读 · 0 评论 -
leetcode41:js实现缺失的第一个正数
题目:给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1const arr = [0, 1, 2];const fun = (arr) => { arr.forEach((item, index) => {...原创 2020-01-22 10:28:52 · 321 阅读 · 0 评论 -
leetcode93:js实现复原IP地址
题目:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: “25525511135”输出: [“255.255.11.135”, “255.255.111.35”]// 复原ip地址const str = "25525511135";// const current = [];let res = [];const restoreIpAddress = ...原创 2020-01-22 19:56:36 · 462 阅读 · 0 评论 -
leetcode30:js实现串联所有单词的子串
给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:[0,9]解释:从索引 0 和 9 ...原创 2020-01-27 14:25:21 · 765 阅读 · 0 评论 -
leetcode682:js实现棒球比赛
题目:你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. “+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3. “D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4. “C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的,应该...原创 2020-01-28 20:36:36 · 310 阅读 · 0 评论