常考算法题
总结常考的笔试或面试题,主要是为了自己复习,故只做简单思路介绍,给出力扣同类型题题号。未在力扣出现的写出题解或好的博文链接
sunximei1
这个作者很懒,什么都没留下…
展开
-
位运算相关问题
题型多为,对整个数组进行异或、与运算;在数组中找到特定几个数使得运算结果最大或最小或等于目标值 #异或 #与 1.数字范围按位于(力扣201) 给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。 ...原创 2021-09-15 10:54:13 · 66 阅读 · 0 评论 -
LRU缓存机制(c++实现)
力扣146;核心结构是双向链表+哈希表实现(插入和查找复杂度均为O(1)) 思路是: 维护一个双向链表(使得插入和删除节点时间为常数),每次插入或者查询的节点放在链表头部; 最长时间未使用的放在尾部;链表长度不得超过限制;链表中所有节点存放在 unordered_map中(使得查询时间为常数); (1)插入节点时,先看节点是否在链表(哈希表)中, 若在,直接更新值。 先检查链表是否达到限制长度:若达到,则删除尾节点,并从哈希表中移除,再插入新建节点;若未达到,则直接插入; (2)查询节点时,则哈希表直接查询原创 2021-09-08 14:58:01 · 111 阅读 · 0 评论 -
背包相关问题
1.力扣377 以下题解提供了不同背包问题的代码区别: https://leetcode-cn.com/problems/combination-sum-iv/solution/xi-wang-yong-yi-chong-gui-lu-gao-ding-bei-bao-wen-/原创 2021-09-07 12:19:01 · 46 阅读 · 0 评论 -
图相关算法总结
1.Dijkstra算法 力扣743求最短路径,这个题解写的很好,可以参考 https://leetcode-cn.com/problems/network-delay-time/solution/gtalgorithm-dan-yuan-zui-duan-lu-chi-tou-w3zc/原创 2021-09-06 08:50:54 · 60 阅读 · 0 评论 -
序列和串(数组)相关
子序列和子串的区别: 子串要求连续,子序列则不要求连续,只要求相对顺序与原序列相同 单个字符串/序列问题 #最长递增子序列问题(力扣300) (1)动态规划(O(N^2)) 用一个额外数组存储,以 当前索引对应的值 作为结尾 的 子序列中,长度最大的值 例: 对于序列 10,9,2,5,3,7,101,18 len数组 1,1,1,2,2,3, 4, 4 遍历至len数组i位置时,将nums[i]的值与nums的0到i - 1的值比较,若大于其值, 则可作为候选序列与当前最大序列长度比较,最终得到最大值原创 2021-08-17 16:58:55 · 297 阅读 · 0 评论 -
链表相关题目
链表题多为双指针,递归 1.反转链表 2.回文链表 3.链表判环 4.求环起点原创 2021-08-17 12:36:36 · 50 阅读 · 0 评论 -
动态规划+贪心算法
1.最长递增子序列问题(力扣300) (1)动态规划 (2)贪心+二分搜索原创 2021-08-15 20:38:48 · 73 阅读 · 0 评论