数据结构与算法
煲纸
一个前端小菜鸡
展开
-
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 · 515 阅读 · 0 评论 -
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 · 334 阅读 · 0 评论 -
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 · 470 阅读 · 0 评论 -
LeetCode1021. 删除最外层的括号 (JavaScript解法)
巧用数字加减,来代替入栈出栈。原创 2020-09-17 17:04:22 · 608 阅读 · 0 评论 -
LeetCode94. 二叉树的中序遍历 (JavaScript解法)
常规的二叉树的遍历原创 2020-09-14 20:37:34 · 162 阅读 · 0 评论 -
LeetCode#21 合并两个有序链表 (JavaScript解法)
leetcode打卡,合并两个有序链表,递归与迭代。原创 2020-09-12 11:04:46 · 214 阅读 · 0 评论 -
LeetCode239. 滑动窗口最大值 (JavaScript解法)
滑动窗口最大值问题原创 2020-09-11 15:25:33 · 170 阅读 · 0 评论 -
LeetCode84. 柱状图中最大的矩形 (JavaScript解法)
巧用单调栈解决最近相关性问题。原创 2020-09-11 12:52:42 · 306 阅读 · 0 评论 -
LeetCode20.有效的括号 (JavaScript解法)
主要利用stack先进后出的特点,来匹配括号,利用对象键值对的映射关系来匹配是否为一对,注意匹配的细节,( 为值 ,)为键名,还可以利用s的长度来判断,如果为奇数则不是有效括号。原创 2020-09-10 23:16:03 · 382 阅读 · 0 评论 -
LeetCode24. 两两交换链表中的节点 (JavaScript解法)
对于链表指针问题必须要搞清楚,不然遇到链表题会很难下手。原创 2020-09-10 16:27:13 · 400 阅读 · 0 评论 -
LeetCode189.旋转数组 (JavaScript解法)
旋转数组的几种方法 : 1. 利用原生的数组api2. 巧用反转,分几次反转。原创 2020-09-10 14:35:46 · 232 阅读 · 0 评论 -
LeetCode 25. K 个一组翻转链表(JavaScript解法)
本题提供的解法为以辅助函数相辅的递归,重点为要搞清楚end结点以及start等节点的作用原创 2020-09-10 14:00:55 · 264 阅读 · 0 评论 -
LeetCode206.反转链表 (JavaScript解法)
反转链表的题解,遍历较好理解,递归较难理解。原创 2020-09-09 15:30:40 · 296 阅读 · 0 评论 -
LeetCode15.三数之和(JavaScript解法)
LeetCode15.三数之和,题目简要解析。原创 2020-09-08 13:39:10 · 508 阅读 · 0 评论 -
LeetCode70.爬楼梯 (JavaScript解法)
改题目本质为斐波那契数列,本人在这里提到3种方法,分别为记忆递归,和利用数组dp,以及对方法二的优化。原创 2020-09-07 22:40:32 · 288 阅读 · 0 评论 -
LeetCode11.盛水最多的容器(JavaScript解法)
巧用双指针解决最值问题。原创 2020-09-07 18:43:37 · 130 阅读 · 0 评论 -
LeetCode283移动零(JavaScript解法)
解题思路方法1:把所有0删除并记录0的数量,在数组最后补0即可原创 2020-09-05 21:38:03 · 207 阅读 · 1 评论 -
数组、链表、跳表简单介绍
数组、链表、跳表简单介绍原创 2020-09-05 20:00:29 · 127 阅读 · 0 评论 -
时间空间复杂度解析
常见时间复杂度和空间复杂度的学习。原创 2020-09-05 13:33:21 · 116 阅读 · 0 评论