首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
算法笔记
猎蚊虎克
创建于2022-01-03
订阅专栏
记录自己的学习历程
暂无订阅
共38篇文章
创建于2022-01-03
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
算法笔记18:从相邻元素对还原数组
用哈希表很简单的,只要把某个元素作为 key,它所有连接的其他元素都存到数组里。如果只有一个其他元素,那么它就是端点。然后再一个个往回找就可以了。
算法笔记17:下一个更大元素 III
线性复杂度解法的核心思想在于:对于一个数字的集合,其能形成的最大数字一定是按照降序进行排列组成,反之最小的数字一定是按照升序排列组成。
算法笔记16:找出缺失的观测数据
把边界判断一下。因为有时候有的剩余次数明显是不够的,而有的时候又是多余的。边界控制好之后,只需要按照均值平均一下,然后把剩下的数分配一下就可以了。
算法笔记15:计算右侧小于当前元素的个数
题目看起来很简单,但一试就知道 O(N^2) 的暴力解法是会超时的。所以我想到了肯定是需要降低复杂度到 O(N log N) ,但苦于猪脑过载实在想不出来什么方法。
算法笔记14:单词拆分 II
我的思路就是递归查找,对词典里的每个词尝试从起始位置进行匹配,如果匹配的话要看下是否进行到了终点,如果进行到终点则把结果加入结果集;如果没有则把当前词从字符串中剔除继续递归。
算法笔记13:幂集
竟然随机到了一道自己面试的时候常出的题目。这道题目思路就是对于每一个元素来说,要加到结果里面的新子集就是前面已经出现的所有子集全都加上自己即可。Base case 就是一个空集。
算法笔记12:删除字符串两端相同字符后的最短长度
这道题目就是规则有点唬人,但其实很简单,按照它说的这五步完成就可以了。中间有一些特殊情况需要处理,比如说字符串长度为 1 的时候,其实也是走到终点了。
算法笔记11:令牌放置
一开始做的时候想复杂了,但其实是对规则没有太理解。如果最后是为了赚取最大的 score 的话,那么肯定是用面值小的 token 来赚 score ,再用面值大的 token 去换更多的 power。
算法笔记10:最长递增子序列
这道题目用 DP 来解决比较简单,对于每一位数字,只要对它前面的每一个数字进行比较即可。从前往后进行的话,前面数字的结果总是已知的,所以就可以递推了。
算法笔记9:访问所有节点的最短路径
每条边的长度为 1,所以适用 BFS 进行路径搜索。 路径搜索的过程中,需要存储哪些节点访问过。这块没看题解之前想到确实是求解过程中需要存储的信息,但是没想到可以用位存储。
算法笔记8:最长公共子序列
这道题目总结一下也是动态规划那几步: 找边界条件、找决策的分枝、用 memo 优化。感觉 DP 题目确实需要多见题型才能抓到感觉,这个无它,唯手熟尔。
算法笔记7:回文子串
这道题目想到了可以找中心点然后向两边展开,但是忘了考虑奇数长度和偶数长度,一开始想的是循环两遍。看了题解发现不需要循环两遍,但是得靠找规律,还是太年轻……
算法笔记6:模式匹配
这个题目一言难尽。一开始写了半天,感觉情况特别复杂,还以为是有规律我自己没找到,或者说分类的依据错了。但是看了一下题解发现也是这种强行分类的方法,于是就接着继续完善自己的思路了。
算法笔记5:重排链表
这道题目感觉是一道对链表操作的整合题目了,主要用到: 快慢指针找中点、链表反转、链表合并。比起都放到数组里面然后按顺序连接节省了空间复杂度:O(N) -> O(1) 。
算法笔记4:最小覆盖子串
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。
算法笔记3:二叉树最近公共祖先
通过一次遍历找到两个节点的位置并且返回最近的祖先节点,只需要通过后序遍历就行。先算出来左、右子树的结果,然后再根据条件判断。
算法笔记2:删除排序链表中的重复元素
递归解法可以很简单的解决这道题。思路就是对每一个元素后面的整个链表进行从头开始的去重即可,这样遍历完整条链表之后,就没有重复的元素了。
算法笔记1:寻找匹配模式的子串
通过 KMP 算法寻找匹配模式串的子串,主要说明了如何通过 DP 思想生成状态转换缓存,从而指导查询。