首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法
福玻斯
创建于2021-12-14
订阅专栏
uker的算法小册
暂无订阅
共19篇文章
创建于2021-12-14
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
刷题 Plan
Day1 算法的时间复杂度和空间复杂度 常见排序算法 Leetcode:排序 Day2 详解二分查找 Leetcode:链表 Day3 Leetcode:双指针 Day4 Leetcode:哈希 Le
算法的时间复杂度和空间复杂度
一般来说,解决问题的方法不止一种,因此我们需要通过比较不同算法的性能,选择出最佳的算法。一个算法的好坏,我们可以从时间和空间两个维度去衡量。
leetcode之汇总考察频率低的题目
一、树 113. 路径总和II 题目113.路径总和II 因为在js中数组是引用类型,如果直接push path;到result中的话,在result中的每个元素都是path的引用值,一旦path改变
leetcode 之哈希
1. 两数之和 题目1. 两数之和 用new Map()创建哈希表,保存 {数组元素值:元素对应下标} 这样的键值对,遍历数组判断哈希表中是否有等于target - nums[i]的值,如果有则返回两
leetcode 之排序
215. 数组中的第K个最大元素 - topK 题目215. 数组中的第K个最大元素 topK 问题整理:前K小?第K小? 考察的是基本的算法排序: 「快速排序」 和 「堆排序」。 topK 问题出现
leetcode之回溯、dfs
46.全排列 - 回溯 题目46. 全排列 题解 排列问题是有序的,也就是说 [1, 2] 和 [2, 1] 是两个集合,数字 1 使用了两次,因此需要一个 used 数组来标记已经选择的元素。 递归
leetcode 之链表
链表 链表存储数据时,不需要使用地址连续的存储单元,而是通过“链”建立起元素之间的逻辑关系,对链表的插入、删除不需要移动元素,只需要修改指针即可。 因为 JS 没有提供内置的链表,因此我们需要学会从头
递归详解
一、什么时候能用递归? 一个大问题的解可以分解成几个子问题的解 子问题的求解思路和大问题完全一样 存在 「递归终止」 条件 二、怎么写递归代码? 明确函数的功能 找出 「递归终止条件」 我们必须找出递
leetcode 之栈
剑指09. 用两个栈实现一个队列 剑指09. 用两个栈实现一个队列 一、「理解题意」 首先,对题目中给出的例子进行说明: 「注意」 输入的第1行是执行的方法,第2行是第1行方法对应的参数,其中CQue
leetcode 之旋转模拟
54. 螺旋矩阵 54. 螺旋矩阵 解题思路 要注意加上"&& numEle >= 1"这个条件,否则长方形就是不正确。 59. 螺旋矩阵II 59. 螺旋矩阵II 思路和54. 螺旋矩阵一致,只是矩
leetcode之广度优先遍历(二叉树)
「二叉树层序遍历思路」 如果是空子树,直接return []。 首先根元素入队, 当队列不为空时(while循环) 记录当前队列的长度len(当前层级的节点数) 一次性遍历完这一层的len个节点,并拓
leetcode 之字符串、正则
1556.千位分隔符 题目1556.千位分隔符 「思路」 首先将字符串分隔为数组,遍历数组并每隔3位加'.',最后要注意对于数字123,返回的应该'123'而不是'.123',因此要对首字母是'.'的
leetcode 之数学
异或 题目136.只出现一次的数字 异或是一个逻辑运算符,数学符号为⊕,js中用^表示。其运算法则为:a⊕b = (¬a∧b)∨(a∧¬b)。如果a、b两个值不相同,则异或结果为1;如果值相同,则异或
leetcode 之递归(二叉树)
递归终止条件:当参数为啥时,递归结束,之后把结果返回。 找出函数的等价关系式:通过一些辅助的变量或操作,来不断缩小参数的范围,并且保证原函数的结果不变。 二叉树的前中后序遍历 题目144. 二叉树的前
leetcode 之动态规划
建议先阅读 动态规划笔记 509.斐波那契数列 题目509.斐波那契数 1. 动态规划 时间复杂度:O(n)。 空间复杂度:O(1)。 2. 递归 时间复杂度:O(n^2)。 剑指10-I.斐波那契数
动态规划详解
一、动态规划是什么 首先我们对动态规划算法做简单的讲解。动态规划是运筹学的一种最优化方法,一般用于 「求最值」 。而求解动态规划的核心问题就是 「穷举」 ,通过穷举所有可能性来计算最值。那么我们为什么
leetcode 之双指针
88.合并两个有序数组(易) 题目88.合并两个有序数组 「方法一 _ 直接合并然后排序」 时间复杂度:O((m+n)log(m+n))。 尽管sort()由于不同浏览器、不同版本的JS引擎可能指定不
常见的排序算法
拓展概念 「算法的稳定性」 :如果待排序表中有两个元素Ra、Rb,对应的关键字key_a = key_b,如果 「排序前后Ra、Rb的位置不改变」,那么就称这个排序算法是稳定的,但稳定性不能衡量算法的
详解二分查找
二分查找适用于 「有序」 的数据集合。 它的思路是:在升序数组nums中寻找目标值target,初始查找范围为整个数组nums。每次取查找范围的中点mid,比较nums[mid]和target的大小。