
java数据结构和算法
学习数据结构和算法记录
听风当歌
Think more and code less
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
前缀树相关内容
前缀树通常用来保存字符串,它的节点和字符串的字符对应,而路径和字符串对应。如果只考虑英文字母,那么前缀树的每个节点有26个子节点。为了标注某些节点和字符串的最后一个字符对应,前缀树节点中通常需要一个布尔类型的字段。使用前缀树解决问题一般需要两步,第一步是创建前缀树,第二步是在前缀树中查找。原创 2024-08-30 14:28:14 · 675 阅读 · 0 评论 -
堆相关内容
堆可以分成最小堆和最大堆,在最大堆中最大值总是在堆顶,在最小堆最小值总是位于堆顶,因此在堆中只需要O(1)的时间就能得到最大值或最小值。堆经常用来解决数据集合中找出k个最大值或最小值相关的问题,通常用最大堆找出数据集合中的k个最小值,用最小堆找出数据集合中的k个最大值。原创 2024-08-29 14:12:27 · 236 阅读 · 0 评论 -
树的相关内容
熟悉二叉树的三中遍历方式,前、中、后序遍历深度搜索算法。原创 2024-08-28 20:09:25 · 456 阅读 · 0 评论 -
队列相关内容
如果数据符合先入先出的条件,则可以考虑使用队列的数据结构来解决,队列可以用来实现二叉树的广度优先搜索。原创 2024-08-27 16:30:41 · 266 阅读 · 0 评论 -
栈相关内容
栈的插入、删除操作都发生在栈的顶部,在栈中插入、删除数据的顺序为“后入先出”,即最后添加的数据最先被删除。Java中类型Stack实现了该功能。原创 2024-08-26 20:03:50 · 270 阅读 · 0 评论 -
哈希表相关内容
哈希表的时间效率很高,添加、删除、查找操作的时间复杂度都是O(1)。哈希表一般由链表的数组构成,HashMap在链表长度大于等于7时会将链表转成树结构。原创 2024-08-23 11:24:40 · 437 阅读 · 0 评论 -
链表相关内容
由于链表再内存中地址不连续,所以访问时需要从头开始逐个遍历。可以哨兵节点简化代码判断逻辑。合理利用双指针前后移动和双指针快慢指针能解决一些问题。双向链表和循环链表操作时需要特别注意,避免产生死循环。原创 2024-08-22 17:56:09 · 407 阅读 · 0 评论 -
字符串相关内容
熟练使用字符串的函数,双指针思想,字符的性质,能很好解决一些问题。原创 2024-08-21 17:53:51 · 348 阅读 · 0 评论 -
数组相关内容
由于数组中的元素在内存中的地址是连续的,因此只需要使用O(1)的时间就可以算计访问数组中的任意元素双指针是解决与数组相关问题的一种常用技术。如果数组是排序的,那么应用双指针的相向就能够用O(n)的时间在数组中找出两个和为给定值的数字如果数组中的所有数字都是整数,那么应用双指针技术就可以用O(1)的辅助空间找出和为给定值的子数组。如果关于子数组之和的问题没有限定数组中的所有数字都是正数,那么可以尝试从第一各数字开始累加数组中前面若干数字之和,两个累加的和的差值对应一个子数组的数字之和。原创 2024-08-20 18:25:43 · 296 阅读 · 0 评论 -
整数相关内容
【代码】整数相关内容。原创 2024-08-19 15:45:08 · 272 阅读 · 0 评论