数据结构和算法
文章平均质量分 73
分享常用的数据结构和算法详解
小面包爱我
这个作者很懒,什么都没留下…
展开
-
递归问题小结
递归详解递归解释什么时候可以使用递归递归如何使用递归五要素:参数:随着递归状态发送改变的对象。返回值:根据题意判断返回什么值。终止条件:根据题意判断递归到什么时候截止。本层递归要做什么:根据题意判断本层递归要做什么。递归方向:可能要改变的对象有几个选择。经典例题反转链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *原创 2021-11-09 17:10:19 · 422 阅读 · 0 评论 -
数据结构与算法之动态规划
数据结构与算法之动态规划介绍基本题型子序列和子串首先是几个需要熟记的点:子序列:子序列并不要求连续子串:子串一定是原始字符串的连续子串回文串:一个字符串,正着读和反着读是一样的。经典题目:最大子序和最长上升子序列最长不递增子序列最长回文子串最长公共子序列最长公共子串打家劫舍股票背包...原创 2021-11-09 17:09:14 · 193 阅读 · 0 评论 -
数据结构和算法之数组
数据结构和算法之数组原创 2021-09-25 10:18:53 · 97 阅读 · 0 评论 -
数据结构和算法之双指针
数据结构和算法之双指针原创 2021-09-25 10:17:11 · 42 阅读 · 0 评论 -
经典排序算法
十大排序原创 2021-09-25 09:22:42 · 58 阅读 · 0 评论 -
数据结构之树小结1
数据结构之树小结1树概述二叉树二叉搜索树经典题目原创 2021-06-27 10:18:13 · 129 阅读 · 0 评论 -
数据结构和算法之栈+队列
数据结构和算法之栈+队列原创 2021-06-23 20:28:49 · 88 阅读 · 0 评论 -
数据结构和算法之字符串
数据结构和算法之字符串基础知识经典题型原创 2021-06-11 19:54:52 · 201 阅读 · 0 评论 -
数据结构和算法之map/set
数据结构和算法之哈希表原创 2021-06-11 15:32:30 · 141 阅读 · 0 评论 -
LRU算法详解
LRU算法详解基于一种假设:长期不被使用的数据,在未来被用到的概率也不大,因此,当数据所占内存达到一定阈值的时候,我们要移除掉最近最少被使用的数据。现在假设有这样一种场景:现在有一个用户系统,向各个业务系统提供用户的基本信息,而业务方会频繁查询用户的信息,用户的信息存在数据库里,但是对用户系统性能要求要高,但是不能每一次请求都去查数据库,所以就在内存中设置了一个哈希表作为缓存,但是用户太多的时候,缓存撑不住了,内存就会不够,现在想法是将一部分很少查询的用户信息给删除掉,等以后要使用的时候再添加进来。问题原创 2021-06-09 22:14:45 · 580 阅读 · 0 评论 -
数据结构和算法之DFS+回溯
数据结构和算法之DFS+回溯介绍//模板:void dfs(...)//参数用来表示状态,根据需要添加。一般什么变化就把什么设置成参数{ if(到达终点状态) { ...//根据题意添加 return; } if(越界或者是不合法状态) ...// return; if(特殊状态)//剪枝 ...// return ; fo原创 2021-06-09 09:02:42 · 159 阅读 · 0 评论 -
数据结构之树小结2
数据结构之树小结2AVL树红黑树B树B+树原创 2021-06-05 15:02:52 · 51 阅读 · 0 评论 -
数据结构与算法之二分查找
数据结构与算法之二分查找什么时候用二分查找所谓二分查找,二分模板经典题目原创 2021-06-01 20:00:10 · 82 阅读 · 0 评论 -
数据结构之堆
数据结构之堆介绍优先级队列,又叫堆,是一个完全二叉树,其中每个节点的值总是大于(小于)或者等于子节点的值,所以就有大顶堆和小顶堆。一般树的实现都是用结点连接而成,也即使用指针,但是因为堆是一个完全二叉树,所以使用数组来表示更方便,从数组下标0开始,位置为i的结点其父节点位置一定是(i-1)/2,而它两个子节点的位置一定是2i+1,2i+2。堆的实现插入元素在堆中插入元素,一般是插入到数组的最后一个位置,然后开始上浮调整,插入元素之前默认堆已经建好了,我们以大顶堆为例子。//插入元素void i原创 2021-05-23 21:41:48 · 64 阅读 · 0 评论 -
数据结构之链表小结
链表小结介绍必须说在前面的是,链表的详细介绍肯定书本或者论文或者百科介绍的更具体,更详细,这里我只是根据我做题学习到的和我认为必须要知道的东西做了一次介绍。什么是链表链表:由若干个结点组成的一种在内存空间中非连续非顺序的存储结构。其中结点是由存储数据元素的数据域和存储下一个(上一个)结点地址的指针域组成。因此,链表插入和删除结点都可以达到O(1)的时间复杂度,但是查找一个节点却要遍历整个链表,O(n)的时间复杂度。结点程序表述:struct ListNode{ int val;原创 2021-05-21 14:50:28 · 215 阅读 · 1 评论