算法
文章平均质量分 64
鲲鹏飞九万里
过好每一天,就是过好这一生。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法:位运算相关算法题目
位运算相关题目文章目录位运算相关题目一、基础内容1.1 为什么需要位运算1.2 位运算符1.3 异或的高级用法1.4 指定位置的位运算1.5 (重点)实战要点二、位运算的实战题目2.1 [191. 位1的个数](https://leetcode-cn.com/problems/number-of-1-bits/)解法一:转化成二进制字符串,然后计数1的个数解法二:位运算,`&1`,然后`>>>1`, 高位补零解法三:每次清零最低位的12.2 [231. 2 的幂](https:/原创 2021-10-31 22:30:38 · 521 阅读 · 0 评论 -
算法:数据结构与算法(总结)
数据结构与算法文章目录数据结构与算法一、数据结构1.1 BST、AVL、Red-Black BST1.2 Trie 字典树、LRU Cache、布隆过滤器1.3 Union-find 并查集1.4 数组 Array List、链表 LinkedList、跳表 SkipList跳表 [Skip list](https://gitee.com/lf-ren/java-re-new-builder/blob/master/projects/pro03Algorithm/src/main/java/com/hef原创 2021-10-25 00:25:42 · 736 阅读 · 2 评论 -
算法:二分查找相关题目
二分查找相关题目文章目录二分查找相关题目一、[69. Sqrt(x)](https://leetcode-cn.com/problems/sqrtx/)解法一:二分查找解法三:牛顿迭代法二、[367. 有效的完全平方数](https://leetcode-cn.com/problems/valid-perfect-square/)解法一:二分查找解法二:牛顿迭代法三、[33. 搜索旋转排序数组](https://leetcode-cn.com/problems/search-in-rotated-sort原创 2021-10-25 00:18:12 · 140 阅读 · 0 评论 -
算法:贪心算法相关题目
贪心算法相关题目文章目录贪心算法相关题目一、[322. 零钱兑换](https://leetcode-cn.com/problems/coin-change/)1.1 动态规划二、[455. 分发饼干](https://leetcode-cn.com/problems/assign-cookies/)解法一:贪心三、[122. 买卖股票的最佳时机 II](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/)解法一:动态规原创 2021-10-24 21:47:45 · 2638 阅读 · 0 评论 -
算法:BFS和DFS相关题目
BFS和DFS相关题目文章目录BFS和DFS相关题目一、[102. 二叉树的层序遍历](https://leetcode-cn.com/problems/binary-tree-level-order-traversal/)1.1 解法一:BFS二、[433. 最小基因变化](https://leetcode-cn.com/problems/minimum-genetic-mutation/)2.1 解法一:BFS三、[22. 括号生成](https://leetcode-cn.com/problems/原创 2021-10-24 13:07:37 · 384 阅读 · 0 评论 -
算法:分治和回溯相关题目
分治和回溯相关题目文章目录分治和回溯相关题目一、[50. Pow(x, n)](https://leetcode-cn.com/problems/powx-n/), 高频解法一:暴力法:超出时间限制解法二:分治二、[78. 子集](https://leetcode-cn.com/problems/subsets/)解法一:递归解法二:遍历解法三:递归,类比括号生成三、[169. 多数元素](https://leetcode-cn.com/problems/majority-element/)3.1 解法一原创 2021-10-23 17:52:35 · 229 阅读 · 0 评论 -
算法:递归相关题目
递归相关题目文章目录递归相关题目一、[70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)解法一:递归+记忆化搜索二、[22. 括号生成](https://leetcode-cn.com/problems/generate-parentheses/)解法一:递归三、[226. 翻转二叉树](https://leetcode-cn.com/problems/invert-binary-tree/)3.1 解法一:递归,原地翻转四、[98. 验原创 2021-10-23 17:52:03 · 891 阅读 · 0 评论 -
算法:堆相关题目
堆相关题目文章目录堆相关题目一、实现大顶堆、小顶堆1.1 小顶堆1.2 大顶堆二、堆排序核心方法:sink三、[剑指 Offer 40. 最小的k个数](https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/)3.1 解法一:排序后取值3.2 解法二:借助堆排序解决四、[239. 滑动窗口最大值](https://leetcode-cn.com/problems/sliding-window-maximum/)五、[剑指 Offer 49. 丑原创 2021-10-17 23:45:25 · 259 阅读 · 0 评论 -
算法:树的遍历
算法:树的遍历文章目录算法:树的遍历一、[94. 二叉树的中序遍历](https://leetcode-cn.com/problems/binary-tree-inorder-traversal/)1.1 解法一:递归求解1.2 解法二:自己维护一个栈二、[144. 二叉树的前序遍历](https://leetcode-cn.com/problems/binary-tree-preorder-traversal/)2.1 解法一:递归求解2.2 解法二:自己维护一个栈三、[590. N 叉树的后序遍历](原创 2021-10-17 18:14:00 · 168 阅读 · 0 评论 -
算法:栈相关经典算法题目
栈相关题目文章目录栈相关题目一、[20. 有效的括号](https://leetcode-cn.com/problems/valid-parentheses/)1.1 解法一: 使用Stack栈(FILO)来实现(可以使用双端队列代替)二、[155. 最小栈](https://leetcode-cn.com/problems/min-stack/)2.1 解法一:自定义栈2.2 解法二:使用辅助栈三、[84. 柱状图中最大的矩形](https://leetcode-cn.com/problems/larg原创 2021-10-17 16:50:23 · 910 阅读 · 0 评论 -
算法:哈希map相关题目
哈希map相关题目文章目录哈希map相关题目一、[242. 有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/)1.1 解法一:暴力,sort, nlogn1.2 解法二:使用map,或者长度为255 的数组二、[49. 字母异位词分组](https://leetcode-cn.com/problems/group-anagrams/)2.1 解法一:map三、[1. 两数之和](https://leetcode-cn.com/problem原创 2021-10-16 17:17:15 · 231 阅读 · 0 评论 -
算法:UnionFind并查集及相关题目
Union-Find 并查集文章目录Union-Find 并查集一、Union-Find的实现1.0 UF1.1 第一种实现:Quick-Find1.2 第二种实现:Quick-Union1.3 第三种实现:Weighted-Quick-Union二、经典题目2.1 [547. 省份数量](https://leetcode-cn.com/problems/number-of-provinces/)解法一:并查集2.2 [200. 岛屿数量](https://leetcode-cn.com/problems原创 2021-10-07 11:29:01 · 210 阅读 · 0 评论 -
算法:Trie字典树
字典树及经典题目文章目录字典树及经典题目一、字典树Trie二、经典题目2.1 [208. 实现 Trie (前缀树)](https://leetcode-cn.com/problems/implement-trie-prefix-tree/)2.2 [212. 单词搜索 II](https://leetcode-cn.com/problems/word-search-ii/)2.3 [79. 单词搜索](https://leetcode-cn.com/problems/word-search/) , D原创 2021-10-04 17:13:05 · 132 阅读 · 0 评论 -
动态规划:经典题目汇总
动态规划:经典题目汇总文章目录动态规划:经典题目汇总一、动态规划的定义二、经典例题3.1 一维的DP:斐波那契数列、[使用最小花费爬楼梯](https://leetcode-cn.com/problems/min-cost-climbing-stairs/)3.2 二维的DP:不同路径1、不同路径2、最小路径和3.3 字符串变化的DP:最长公共子序列三、动态规划实战题目3.1 爬楼梯3.2 最小路径和3.3 最大子序列和、乘积最大子序列3.4 零钱兑换(和爬楼梯问题有异曲同工之妙)3.5 打家劫舍1、打家原创 2021-10-02 18:10:59 · 3877 阅读 · 0 评论 -
动态规划:爬楼梯及三种变形
动态规划:爬楼梯文章目录动态规划:爬楼梯一、[70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)1.1 解法一:递归1.2 解法三:递归+记忆化搜索1.3 动态规划二、如果一次可以上1、2、3步,有多少种方法三、如果每次可以上1、2、3阶台阶,并且相邻的步伐不能相同,有多少种方法四、[746. 使用最小花费爬楼梯](https://leetcode-cn.com/problems/min-cost-climbing-stairs/)4.1原创 2021-10-01 16:56:17 · 1626 阅读 · 0 评论 -
动态规划,股票买卖最佳时机:六道题目
股票买卖最佳时机文章目录股票买卖最佳时机一、[121. 买卖股票的最佳时机](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/)解法一:暴力法,(时间超限制)解法二:一次遍历解法三:动态规划(二维数组)解法四:动态规划(空间复杂度的优化一)解法五:动态规划(空间复杂度的优化二)二、[122. 买卖股票的最佳时机 II](https://leetcode-cn.com/problems/best-time-to-buy-and原创 2021-10-01 12:24:44 · 145 阅读 · 0 评论 -
动态规划经典题目:打家劫舍
动态规划经典题目:打家劫舍文章目录动态规划经典题目:打家劫舍一、[198. 打家劫舍](https://leetcode-cn.com/problems/house-robber/)1.1 解法一:动态规划,二维DP1.2 解法二:动态规划,一维DP1.3 解法三:动态规划,使用三个变量(进一步简化)二、[213. 打家劫舍 II](https://leetcode-cn.com/problems/house-robber-ii/)一、198. 打家劫舍1.1 解法一:动态规划,二维DP pu原创 2021-09-23 23:18:01 · 263 阅读 · 0 评论 -
动态规划经典题目:零钱兑换
零钱兑换文章目录零钱兑换一、[322. 零钱兑换](https://leetcode-cn.com/problems/coin-change/)1.1 解法一:DFS,超内存限制1.2 解法二:递归,DFS,时间超限制1.3 解法三:对DFS的改进(记忆化搜索)1.4 解法三:BFS,超内存限制1.5 解法四:BFS,超时间限制1.6 解法四:对BFS的改进1.7 解法五:动态规划一、322. 零钱兑换1.1 解法一:DFS,超内存限制 public int coinChange(int[]原创 2021-09-23 22:31:55 · 197 阅读 · 0 评论 -
动态规划经典题目:零钱兑换
零钱兑换文章目录零钱兑换一、[322. 零钱兑换](https://leetcode-cn.com/problems/coin-change/)1.1 解法一:DFS,超内存限制1.2 解法二:递归,DFS,时间超限制1.3 解法三:BFS,超内存限制1.4 解法四:BFS,超时间限制1.5 解法五:动态规划一、322. 零钱兑换1.1 解法一:DFS,超内存限制 public int coinChange(int[] coins, int amount) { if (amou原创 2021-09-21 17:07:13 · 303 阅读 · 0 评论 -
动态规划经典题目:最大子序列和、乘积最大子序列
最大子序列和、乘积最大子序列文章目录最大子序列和、乘积最大子序列一、[53. 最大子序和](https://leetcode-cn.com/problems/maximum-subarray/)1.1 解法一:暴力求解:n^21.2 解法二:动态规划1.3 解法三:分治二、[152. 乘积最大子数组](https://leetcode-cn.com/problems/maximum-product-subarray/)2.1 解法一:暴力法2.2 解法二:动态规划一、53. 最大子序和1.1 解法一:原创 2021-09-21 12:44:05 · 214 阅读 · 0 评论 -
动态规划经典题目:最小路径和
动态规划:最小路径和文章目录动态规划:最小路径和一、[120. 三角形最小路径和](https://leetcode-cn.com/problems/triangle/)1.1 解法一:递归(时间超限制)1.2 解法二:递归+记忆化搜索1.3 解法三:DP动态规划一、120. 三角形最小路径和1.1 解法一:递归(时间超限制) public int minimumTotal(List<List<Integer>> triangle) { // 解法一:递原创 2021-09-20 23:10:58 · 179 阅读 · 0 评论 -
动态规划经典题目:不同路径1、2、最小路径和
不同路径1、2、最小路径和文章目录不同路径1、2、最小路径和一、[62. 不同路径](https://leetcode-cn.com/problems/unique-paths/)1.1 解法一:递归(时间超限制)1.2 解法二:递归+记忆化搜索1.3 解法三:DP,动态递推(1)DP:使用二维数组存储中间状态(2)DP:使用一维数组存储中间状态二、[63. 不同路径 II](https://leetcode-cn.com/problems/unique-paths-ii/)2.1 方案一:递归(时间超限原创 2021-09-20 21:13:07 · 299 阅读 · 0 评论 -
动态规划经典题目:不同路径1、2
不同路径1、2文章目录不同路径1、2一、[62. 不同路径](https://leetcode-cn.com/problems/unique-paths/)1.1 解法一:递归(时间超限制)1.2 解法二:递归+记忆化搜索1.3 解法三:DP,动态递推(1)DP:使用二维数组存储中间状态(2)DP:使用一维数组存储中间状态二、[63. 不同路径 II](https://leetcode-cn.com/problems/unique-paths-ii/)2.1 方案一:递归(时间超限制)2.2 方案二:递归原创 2021-09-20 20:30:48 · 162 阅读 · 0 评论 -
动态规划经典题目:斐波那契 及扩展题目
斐波那契经典题目:爬楼梯文章目录斐波那契经典题目:爬楼梯一、[70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)1.1 解法一:递归1.2 解法三:递归+记忆化搜索1.3 动态规划二、如果一次可以上1、2、3步,有多少种方法三、如果每次可以上1、2、3阶台阶,并且相邻的步伐不能相同,有多少种方法一、70. 爬楼梯1.1 解法一:递归0, 1, 2, 3, 5, 8, 13, 21, 34, 55… /** * 递原创 2021-09-20 19:08:04 · 138 阅读 · 0 评论 -
平衡查询树:从2-3 search Tree 到 红黑树
平衡查询树(Balanced Search Tree):从2-3 search Tree 到 红黑树文章目录平衡查询树(Balanced Search Tree):从2-3 search Tree 到 红黑树一、2-3 查询树的定义二、2-3 叉树的关键思想三、红黑树:Red-black BSTs3.1 表示 3-node3.2 颜色的表示3.,3 旋转操作和翻转颜色(1)左旋操作:left rotation(2)右旋操作(3)翻转颜色(4)几种基本的插入操作3.4 保持根节点的颜色为黑色3.5 代码实现原创 2021-09-12 21:17:23 · 161 阅读 · 0 评论 -
位运算相关算法基础
由于在计算机中,数据都是以二进制存储的。那么通过使用位运算,可以让计算效率更高。下图是位运算的理论基础:原创 2021-07-08 22:19:38 · 107 阅读 · 0 评论 -
排序算法的知识图谱(包含详细代码)
其中有三个时间复杂度为O(nlogN)的要着重学习:一、归并排序,有两种实现方案归并排序有两种实现方案,一种是顶向下的归并(分治),一种是自底向上的归并(动态规划)。二、快速排序,也有两种第一种快排:QuickSort,种有一个partion()方法;第二种快排:Quick3Way,叫三路快排,适合对有列表中有多个重复元素的排序;三、堆排序,基于sink()方法无需构建一个堆结构,只需使用sink()方法。具体的代码在github上:https://github.com/..原创 2021-07-01 23:30:00 · 508 阅读 · 1 评论 -
图计算:最短路径的AcyclicSP算法(纠正书中的错误)
图计算:最短路径的AcyclicSP算法(纠正书中的错误)文章目录图计算:最短路径的AcyclicSP算法(纠正书中的错误)一、思想二、具体实现一、思想根据拓扑排序进行遍历,进行“皮筋放松”操作。算法(第四版)中的AcyclicSP算法代码不完整。导致其只对起点s为拓扑排序的第一个数值时才生效。稍微修改,便可使用于图的任何顶点。二、具体实现详细代码在GitHub上/** * 图计算: 查询最短路径都树 * @author lifei * @since 2020/12/13 */pu原创 2020-12-13 19:10:08 · 229 阅读 · 0 评论 -
算法(第四版)思维导图——完善中
原创 2020-12-08 23:10:57 · 350 阅读 · 0 评论 -
图计算_最小生成树的LazyPrimMST算法
图计算:最小生成树文章目录图计算:最小生成树一、基本概念二、算法一:Lazy Prim‘s MST Algorithm2.1 思路2.2 使用到的辅助类(1) `In` 用于读取图信息,构造图(2) `Bag` 袋子,支持插入和遍历元素操作(3)`Queue` 队列 ,FIFO(4) `MinPQ` 最小优先级队列(5) `Edged` 代表图的边(6) `WeightEdgedGraph` 代表有权重边的图2.3 `LazyPrimMST`算法的实现一、基本概念图:一个平面里,有很多点(顶点),对这原创 2020-11-02 07:01:08 · 266 阅读 · 0 评论
分享