![](https://img-blog.csdnimg.cn/direct/4fe6ec78b2b44e0790f140bb4437169b.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 88
Java数据结构与算法
StartLFly
努力工作,认真玩。
展开
-
力扣高评价题目
面试最常考的 100 道算法题分类整理转载 2024-06-10 17:17:02 · 14 阅读 · 0 评论 -
数据结构与算法-28_Leetcode 股票问题
股票问题原创 2024-06-10 17:15:14 · 111 阅读 · 0 评论 -
数据结构与算法-27_Leetcode 设计
算法设计原创 2024-06-10 17:09:43 · 637 阅读 · 0 评论 -
数据结构与算法-26_Leetcode 字符串
字符串原创 2024-06-10 17:02:19 · 197 阅读 · 0 评论 -
数据结构与算法-25_Leetcode 单调队列和栈
单调队列和栈原创 2024-06-10 16:59:25 · 805 阅读 · 0 评论 -
数据结构与算法-24_Leetcode 双指针
双指针原创 2024-06-10 16:56:49 · 706 阅读 · 0 评论 -
数据结构与算法-23_Backtracking Algorithm
回溯算法原创 2024-06-10 16:51:31 · 367 阅读 · 0 评论 -
数据结构与算法-22_Divide and Conquer
分治思想将大问题划分为两个到多个子问题子问题可以继续拆分成更小的子问题,直到能够简单求解如有必要,将子问题的解进行合并,得到原始问题的解。原创 2024-06-10 16:43:21 · 640 阅读 · 0 评论 -
数据结构与算法-21_Dynamic-Programming
Dynamic-Programming原创 2024-06-10 16:33:54 · 889 阅读 · 0 评论 -
数据结构与算法-20_Greedy Algorithm
贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。通常用于求解优化问题,如最小生成树、背包问题等。并查集合中的 union by size 和 union by height。原创 2024-06-10 16:15:40 · 703 阅读 · 0 评论 -
数据结构与算法-19_图
如果两个顶点之间存在路径,则这两个顶点是连通的,所有顶点都连通,则该图被称之为连通图,若子图连通,则称为连通分量。如果在 3 层循环结束后,在 dist 数组的对角线处(i==j 处)发现了负数,表示出现了负环。路径被定义为从一个顶点到另一个顶点的一系列连续边,如上图中【北京】到【上海】有多条路径。在有向图中,从一个顶点开始,可以通过若干条有向边返回到该顶点,形成了一个环。该图有四个顶点:A、B、C、D 以及四条有向边,有向图中,边是单向的。无向图,边是双向的,如。改进 - 优先级队列。原创 2024-06-10 15:37:01 · 663 阅读 · 0 评论 -
数据结构与算法-18_排序算法
排序算法原创 2024-06-06 11:18:22 · 522 阅读 · 0 评论 -
数据结构与算法-17_ 哈希表
Hash算法,是一种从任意长度的数据输入到固定长度输出的映射函数。哈希算法的主要特点是高效计算、输出长度固定、输入敏感、抗碰撞性强、不可逆性。题目中说明 s 由英文字母、数字、符号和空格组成,因此它的范围是有限的(在 0 ~127 之内),可以用数组来替代 HashMap 优化。begin 调整时的解释,遇到重复的 begin 应该向右调整,例如。的过程,其中编号是一个有限范围内的数字(如 int 范围内)原创 2024-06-06 09:27:01 · 667 阅读 · 0 评论 -
数据结构与算法-16_ B 树
B树(B-Tree)结构是一种高效存储和查询数据的方法。B树主要思想是将每个节点扩展成多个子节点,以减少查找所需的次数。B树结构非常适合应用于磁盘等大型存储器的高效操作,被广泛应用于关系数据库和文件系统中。特性一棵 B-树具有以下性质特性1:每个节点 x 具有属性 n,表示节点 x 中 key 的个数属性 leaf,表示节点是否是叶子节点节点 key 可以有多个,以升序存储特性2:每个非叶子节点中的孩子数是 n + 1、叶子节点没有孩子最小度数t键数量范围21 ~ 33。原创 2024-06-06 09:03:17 · 793 阅读 · 0 评论 -
数据结构与算法-15_红黑树
红黑树原创 2024-06-06 08:46:46 · 799 阅读 · 0 评论 -
数据结构与算法-14_AVL 树
AVL 树是一种自平衡二叉搜索树。在二叉搜索树中,如果插入的元素按照特定的顺序排列,可能会导致树变得非常不平衡,从而降低搜索、插入和删除的效率。为了解决这个问题,AVL 树通过在每个节点中维护一个平衡因子来确保树的平衡。平衡因子是左子树的高度减去右子树的高度。如果平衡因子的绝对值大于等于 2,则通过旋转操作来重新平衡树。AVL 树是用于存储有序数据的一种重要数据结构,它是二叉搜索树的一种改进和扩展。它不仅能够提高搜索、插入和删除操作的效率,而且还能够确保树的深度始终保持在 O(log n) 的水平。原创 2024-06-06 08:23:17 · 1112 阅读 · 0 评论 -
数据结构与算法-13_二叉搜索树
二叉搜索树原创 2024-06-05 10:38:21 · 774 阅读 · 0 评论 -
数据结构与算法-12_二叉树
二叉树是这么一种树状结构:每个节点最多有两个孩子,左孩子和右孩子二叉树结构完全二叉树(complete binary tree)是一种二叉树结构,除最后一层以外,每一层都必须填满,填充时要遵从先左后右平衡二叉树(balance binary tree)是一种二叉树结构,其中每个节点的左右子树高度相差不超过 1。原创 2024-06-04 15:40:36 · 837 阅读 · 0 评论 -
数据结构与算法-11_堆
堆原创 2024-06-04 15:21:31 · 328 阅读 · 0 评论 -
数据结构与算法-10_阻塞队列
阻塞队列原创 2024-06-04 15:03:17 · 944 阅读 · 0 评论 -
数据结构与算法-09_优先级队列
优先级队列原创 2024-06-04 14:40:41 · 722 阅读 · 0 评论 -
数据结构与算法-08_双端队列
定义特点队列一端删除(头)另一端添加(尾)栈一端删除和添加(顶)双端队列两端都可以删除、添加优先级队列优先级高者先出队延时队列根据延时时间确定优先级并发非阻塞队列队列空或满时不阻塞并发阻塞队列队列空时删除阻塞、队列满时添加阻塞Java 中 LinkedList 即为典型双端队列实现,不过它同时实现了 Queue 接口,也提供了栈的 push pop 等。原创 2024-06-04 14:28:56 · 328 阅读 · 0 评论 -
数据结构与算法-07_栈
计算机科学中,stack是一种线性的数据结构,只能在其一端添加数据和移除数据。一端称之为栈顶,另一端不能操作数据的称之为栈底。原创 2024-06-04 14:10:52 · 386 阅读 · 0 评论 -
数据结构与算法-06_队列
计算机科学中,queue 是以顺序的方式维护的一组数据集合,在一端添加数据,从另一端移除数据。添加的一端称为尾,移除的一端称为头。原创 2024-06-04 13:45:17 · 659 阅读 · 0 评论 -
数据结构与算法-05_递归
定义计算机科学中,递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集recursionreturn;自己调用自己,如果说每个函数对应着一种解决方案,自己调用自己意味着解决方案是一样的(有规律的)每次调用,函数处理的数据会较上次缩减(子集),而且最后会缩减至无需继续递归内层函数调用(子集处理)完成,外层函数才能算调用完成原理假设链表中有 3 个节点,value 分别为 1,2,3,以上代码的执行流程就类似于下面的伪码return;思路确定能否使用递归求解。原创 2024-06-04 11:49:27 · 834 阅读 · 0 评论 -
数据结构与算法-04_链表
定义在计算机科学中,链表是数据元素的线性集合,其每个元素都指向下一个元素,元素存储上并不连续单向链表,每个元素只知道其下一个元素是谁双向链表,每个元素知道其上一个元素和下一个元素循环链表,通常的链表尾节点 tail 指向的都是 null,而循环链表的 tail 指向的是头节点 head链表内还有一种特殊的节点称为哨兵(Sentinel)节点,也叫做哑元( Dummy)节点,它不存储数据,通常用作头尾,用来简化边界判断,如下图所示随机访问性能根据 index 查找,时间复杂度OnO(n)O。原创 2024-05-29 15:03:04 · 707 阅读 · 0 评论 -
数据结构与算法-03_数组
定义在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识arrayelementsorkey因为数组内的元素是连续存储知道了数组的数据起始地址BaseAddressBaseAddress,就可以由公式BaseAddressi∗sizeBaseAddressi∗size计算出索引iii元素的地址iii即索引,在 Java、C 等语言都是从 0 开始size。原创 2024-05-28 16:00:07 · 837 阅读 · 0 评论 -
数据结构与算法-02_二分查找
二分查找算法也称折半查找,是一种非常高效的工作于有序数组的查找算法。二分查找性能时间复杂度OlognO(\log n)Ologn最好情况:如果待查找元素恰好在数组中央,只需要循环一次O1O(1)O1空间复杂度需要常数个指针ijmi,j,mijm,因此额外占用的空间是O1O(1)O1。原创 2024-05-07 15:46:16 · 1203 阅读 · 1 评论 -
数据结构与算法-01_初识算法
在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算。algorithmIntroduction to Algorithm 中文译作《算法导论》算法就是任何定义优良的计算过程:接收一些值作为输入,在有限的时间内,产生一些值作为输出。在计算机科学领域,数据结构是一种数据组织、管理和存储格式,通常被选择用来高效访问数据。Introduction to Algorithm 中文译作《算法导论》数据结构是一种存储和组织数据的方式,旨在便于访问和修改。原创 2024-05-02 10:06:13 · 253 阅读 · 2 评论