![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
文章平均质量分 91
LynnWonderLu
https://github.com/LynnWonder
展开
-
详解基于堆的算法
(二叉)堆是一种数据结构,它可以看成是一个近似于完全二叉树(除了最后一层外,其他层都被填满)的数组。本文将从概念,基础算法,常见应用等层次陈述内容。原创 2023-02-02 14:54:30 · 678 阅读 · 0 评论 -
详解链表相关算法
链表(linked list)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。[算法导论链表相关的题解](https://walkccc.me/CLRS/Chap10/10.2/)。本文将从概念,基础算法,常见题目等方面进行陈述。原创 2023-02-02 14:48:00 · 404 阅读 · 0 评论 -
详解前缀和与差分问题
详解前缀和与差分问题原创 2022-11-18 21:15:31 · 285 阅读 · 0 评论 -
详解双指针法
详解双指针法,对撞指针,同向指针,滑动窗口原创 2022-10-11 14:38:48 · 250 阅读 · 1 评论 -
详解二叉树算法
详解二叉树算法binary treebinary search tree原创 2022-09-25 10:12:55 · 330 阅读 · 0 评论 -
详解指数退避算法
指数退避算法 exponential backoff algorithm原创 2022-09-21 14:42:24 · 2659 阅读 · 0 评论 -
详解基于栈的算法
单调栈要求每次入栈的元素必须要有序(如果新元素入栈不符合要求,则将之前的元素出栈,直到符合要求再入栈),使之形成单调递增/单调递减的一个栈。分类单调递增栈(按出栈顺序递增,即是一个递减的数组)只有比栈顶小的才能入栈,否则就把栈顶出栈一直到没有比该值更大的,再入栈。出栈时可能会有一些计算。单调递减栈(按出栈顺序递减,即是一个递增的数组)只有比栈顶大的才能入栈,否则就把栈顶出栈一直到没有比该值更小的,再入栈。...原创 2022-07-20 14:59:24 · 209 阅读 · 1 评论 -
数据结构 javascript 描述[Data-Structure described byJavaScript]
是对很久之前的一篇关于用javascript实现常见数据结构的一个整理,其中添加了一些常见的数据结构的应用,以后会陆续加入数据结构javascript描述文章目录数据结构javascript描述栈实现双栈排序栈特点:后入先出只能访问栈顶实现function Stack() { this.dataStore = []; this.top = 0...原创 2019-08-31 11:46:51 · 661 阅读 · 1 评论 -
Java treeSet-平衡BST-红黑树
Java treeSet-平衡BST-红黑树文章目录Java treeSet-平衡BST-红黑树二叉树排序原理BSTRBT 红黑树关于Java中的TreeSet类TreeSet特点继承关系TreeSet类中元素的排序方式本篇文章最初是做leetcode-220-存在重复元素 III的时候参考官方答题思路而整理的一文。红黑树讲解过于复杂,会逐步补充进来。references:详解jav...原创 2020-01-05 20:55:16 · 385 阅读 · 0 评论 -
JavaScript实现栈、队列、链表
栈:后进先出;栈顶(表尾)移除,栈顶添加,只能访问栈顶元素(peek方法);function stack(){ var items=[]; this.push=function(ele){//添加,注意不返回新数组的长度; items.push(ele); }; this.pop=function(ele){//移除栈顶元素并且...原创 2019-05-08 21:06:05 · 470 阅读 · 0 评论 -
详解动态规划
详解动态规划原创 2022-06-30 18:48:37 · 170 阅读 · 0 评论 -
详解贪心算法
详解贪心算法文章目录详解贪心算法什么是贪心算法适用条件如何实现summary算法局限性贪心/分治/dp的区别examples找零钱问题股票问题分发糖果背包问题0-1 背包问题部分背包问题references:贪心算法详解程序员算法基础——贪心算法详解贪心算法(Python实现贪心算法典型例题)递归,分治算法,动态规划和贪心选择的区别什么是贪心算法狭义的贪心算法指的是解最优......原创 2020-03-01 09:51:21 · 5620 阅读 · 0 评论 -
TopK问题三种方法总结
TopK问题三种方法总结文章目录TopK问题三种方法总结what's topK?堆解题步骤具体实现summaryquickSelect解题步骤具体实现summary二分法解题步骤具体实现summaryleetcode-719-找出第 k 小的距离对leetcode-378-有序矩阵中第K小的元素references:Top K问题的两种解决思路TOP-K问题的几种解法Top-K问题的几种...原创 2020-02-07 17:34:35 · 1766 阅读 · 1 评论 -
详解分治算法
详解分治算法文章目录详解分治算法概念适用条件解题步骤summary时间复杂度常见题型快排和归并排序汉诺(Hanoi)塔问题引入思路分析时间复杂度references:分治算法详解分治算法总结概念字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高...原创 2020-01-16 16:37:21 · 1066 阅读 · 1 评论 -
排序算法的应用-leetcode
排序算法的应用文章目录排序算法的应用荷兰国旗问题-leetcode-75-颜色分类leetcode-56-合并区间荷兰国旗问题-leetcode-75-颜色分类references:颜色分类 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别...原创 2020-01-02 20:14:29 · 477 阅读 · 1 评论 -
详解二分查找法
详解二分查找法文章目录详解二分查找法概念应用场景(适用条件)解题步骤代码框架关于这段代码的keys为什么 while 循环的条件中是 <=,而不是 < ?什么时候应该停止搜索呢?为什么 left = mid + 1,right = mid - 1?算法缺陷寻找左侧边界的二分搜索寻找右侧边界的二分搜索summary例题参考references:详解二分查找算法Java常见算法之二...原创 2019-12-25 17:39:23 · 2081 阅读 · 2 评论 -
详解回溯法
文章目录回溯法概念适用条件解题步骤回溯法和DFS的区别常见题型素数环迭代递归回溯法references:回溯算法回溯算法详细讲解回溯算法(一)回溯法-素数环问题素数环(java实现)概念回溯(backtracking)法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满...原创 2019-12-04 17:11:10 · 4915 阅读 · 0 评论 -
leetcode
leetcode刷题记录–算法学习文章目录leetcode刷题记录--算法学习算法的时间复杂度和空间复杂度时间复杂度(Time Complexity)空间复杂度(Space Complexity)排序算法的时间和空间复杂度两数之和(简单-)两个链表倒序相加(中等-数学)整数反转(简单-数学)合并区间(中等-数组)二叉树遍历二叉树的深度优先和广度优先遍历深度优先遍历重建二叉树链表单向链表双向链表循...原创 2019-08-07 11:24:08 · 714 阅读 · 0 评论