
LeetCode刷题总结
文章平均质量分 94
学而不思则罔,思而不学则殆。学びて思わざれば則ち罔し、思いて学ばざれば即ち殆うし
从流域到海域
此人不懒,但他除了干货什么都没有留下。
展开
-
树状数组及其LeetCode应用详解
树状数组又称二叉索引树(Binary Indexed Tree),以其发明者又命名为Fenwick树,最早由Peter.M.Fenwick以A New Data Structure for Cumulative Frequence Tables作为论文题目发表在期刊Software Practice and Experience(目前SCI 三区)。如题,是用来计算数据压缩时的累计频率(cumulative frequency)的计算问题,现在常用于高效计算数列的前缀和,区间和。-百度百科。树状数组.原创 2020-10-31 10:39:41 · 731 阅读 · 1 评论 -
单调栈详解及其LeetCode应用详解
**栈(Stack)是一种操作受限的线性表,只允许一端进,同一端出,因而具有后进先出(LIFO)**的特性。原创 2020-12-12 19:22:10 · 367 阅读 · 2 评论 -
单调队列及其LeetCode应用详解
队列(Queue)是另一种操作受限的线性表,只允许元素从队列的一端进,另一端出,因为具有先进先出(FIFO)的特性。单调队列(Monotonic Queue)是一种特殊的队列,它首先是一个队列,其次队列内部的元素单调递增(递增队列)或者单调递减(递减队列)。注意:单调队列是基于双端队列(Deque)实现的。单调队列在算法中的应用在于可以求区间内的最大或者最小值。// 递增队列for(int i=0; i<nums.length; i++) { while(!deque.isEmpty()原创 2020-12-12 21:25:38 · 572 阅读 · 0 评论 -
贪心算法及Jump Game系列题详解
贪心算法属于比较难的算法,一般用于求解最优解或者极限情况下判断可能性。贪心和动态规划的区别在于,贪心算法的解题过程中会展现出最优子结构,子问题的最优解构成了全局的最优解,而动态规划则是考虑所有子问题,针对这些子结构求解,从中选取出最优解。贪心算法有两个重要组成部分:贪心策略最优子结构贪心策略的选取将对贪心算法能否得到最优解起到了决定性的作用。最优子结构指的是,大问题分解成小问题时,使用拟定好的贪心策略一样能得到小问题的最优解。详见Greedy Analysis Strategies,摘自.原创 2021-01-06 17:16:59 · 553 阅读 · 0 评论 -
N皇后问题如何写出简洁的最优解 - 回溯法及LeetCode应用详解
backtracking(回溯),是LeetCode上比较常见的一类典型题。本博文所有的代码均可在https://github.com/Hongze-Wang/LeetCode_Javahttps://github.com/Hongze-Wang/LeetCode_Python中找到,欢迎star。回溯法之所以称之为回溯法,是因为它其实是DFS/BFS+回溯操作进行的穷举。回溯和DFS/BFS的区别在于回溯操作。也有人把回溯法BFS/DFS,这是不太准确的,回溯法是特殊的DFS或者BFS,因为.原创 2021-01-11 19:17:51 · 608 阅读 · 0 评论