- 博客(29)
- 收藏
- 关注
原创 LeetCode176.单词接龙 (JavaScript解法)
单词接龙题解思路1:暴力BFS思路,通过比较单词之间的两两对比,生成一张key为单词,value为可以接龙上的单词数组,然后逐层搜索,如果单词对应上了,就返回层数,否则返回0。分析时间复杂度O( M * N ) M为单词长度,N为单词个数,空间复杂度为O( N + N )代码实现var ladderLength = function (beginWord, endWord, wordList) { let q = [[beginWord, 0]], map = new Map(), v
2020-10-01 20:09:27
552
原创 LeetCode169. 多数元素 (JavaScript解法)
169. 多数元素题解思路1:摩尔投票法思路 由于数的数量超过一半,所以那个数的出现的频率,一定大于等于50%,如果res为正确的众数,则voted的数量不可能为0,所以最后的res就是众数。分析时间复杂度O( N )空间复杂度 O( 1 )代码实现var majorityElement = function (nums) { let res = nums[0],voted = 0; for(let n of nums) { if(voted === 0 ) res =
2020-09-28 15:15:20
410
原创 LeetCode20. 岛屿数量(JavaScript解法)
岛屿数量题解思路1:BFS思路:广度优先搜索,对每个点进行成岛判断,上下左右判断。分析时间复杂度 O( M * N ) 空间复杂度 O( min( M , N )),空间复杂度为队列的长度,为一层岛屿的数量,为M或N的最小值。代码实现const numIslands = (grid) => { if (!grid.length) { return 0 } let row = grid.length, col = grid[0].length, q = [], res = 0
2020-09-25 22:32:48
519
原创 LeetCode20.有效的括号 (JavaScript解法)
主要利用stack先进后出的特点,来匹配括号,利用对象键值对的映射关系来匹配是否为一对,注意匹配的细节,( 为值 ,)为键名,还可以利用s的长度来判断,如果为奇数则不是有效括号。
2020-09-10 23:16:03
409
原创 LeetCode 25. K 个一组翻转链表(JavaScript解法)
本题提供的解法为以辅助函数相辅的递归,重点为要搞清楚end结点以及start等节点的作用
2020-09-10 14:00:55
297
原创 LeetCode70.爬楼梯 (JavaScript解法)
改题目本质为斐波那契数列,本人在这里提到3种方法,分别为记忆递归,和利用数组dp,以及对方法二的优化。
2020-09-07 22:40:32
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人