leetcode-javascript icon indicating copy to clipboard operation
leetcode-javascript copied to clipboard

:beers: 喝杯小酒,一起做题。前端攻城狮从零入门算法的宝藏题库,根据知名算法老师的经验总结了 100+ 道 LeetCode 力扣的经典题型 JavaScript 题解和思路。已按题目类型分 label,一起加油。

Results 101 leetcode-javascript issues
Sort by recently updated
recently updated
newest added

这里有一个非负整数数组  arr,你最开始位于该数组的起始下标  start  处。当你位于下标  i  处时,你可以跳到  i + arr[i] 或者 i - arr[i]。 请你判断自己是否能够跳到对应元素值为 0 的 任一 下标处。 注意,不管是什么情况下,你都无法跳到数组之外。 ``` 示例 1: 输入:arr = [4,2,3,0,3,1,2], start = 5 输出:true 解释:...

BFS
待复习

在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 ``` 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0...

动态规划
待复习

哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!"已经变成了"iresetthecomputeritstilldidntboot"。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典 dictionary,不过,有些词没在词典里。假设文章用 sentence 表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未识别的字符数。 注意:本题相对原题稍作改动,只需返回未识别的字符数 ``` 示例: 输入: dictionary = ["looked","just","like","her","brother"] sentence = "jesslookedjustliketimherbrother" 输出: 7 解释: 断句后为"jess looked just like tim her...

动态规划
待复习

给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。 ``` 示例 1: 输入: s = "abpcplea", d = ["ale","apple","monkey","plea"] 输出: "apple" 示例 2: 输入: s = "abpcplea", d = ["a","b","c"] 输出: "a" 说明: 所有输入的字符串只包含小写字母。 字典的大小不会超过 1000。 所有输入的字符串长度不会超过 1000。...

双指针
排序

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。 说明: 分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 ``` 示例 1: 输入: s = "catsanddog" wordDict = ["cat", "cats", "and", "sand", "dog"] 输出: [   "cats and dog",   "cat sand dog" ]...

动态规划

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定  s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 ``` 示例 1: 输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。...

动态规划
待复习

给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: ``` 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ] ``` 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-partitioning 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ## 思路 ### 递归全排列 尝试所有的下标做起点,所有的下标作为终点,递归暴力判断。 ```js /** * @param {string}...

递归与回溯

给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: ``` 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ] ``` 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/subsets-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ## 思路 本题和 [组合总和 II-40](https://github.com/sl1673495/leetcode-javascript/issues/73) 的思路类似,剪枝的思路也是和之前相似的,如果循环的时候发现剩余的数字不足以凑成目标长度,就直接剪掉。 ```js /** * @param...

递归与回溯

给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。   示例: ``` 输入: "25525511135" 输出: ["255.255.11.135", "255.255.111.35"] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/restore-ip-addresses 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ``` ## 思路 利用一个辅助的 DFS函数,每次可以传入当前起始的位置,和当前已使用的`.`的数量,然后通过范围在 `1 ~ 3`...

待复习
递归与回溯

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设  s 的最大长度为 1000。 ``` 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" ``` 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-palindromic-substring 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ## 思路 ###...

动态规划
待复习