数据结构与算法
文章平均质量分 56
本专栏主要是笔者学习常见的算法的一些记录,诸如双指针(同向,相向)、前缀和、滑动窗口等等,链表、树的处理、DP等等
苏木樨
道路很远,但脚步更长!
展开
-
二分查找(红蓝染色法)
本文深入讨论二分查找在闭区间,开区间,半闭半开区间的写法原创 2023-12-23 08:41:18 · 639 阅读 · 1 评论 -
数据结构之链表
我们常用的数据结构就这几种数组、链表、树、map(映射),而这些结构又紧密相连,互相表达;在我看来HashMap是基于数组的映射,TreeMap是基于树的映射,Java中的数组实际是JVM给你在内存(堆)中创建的连续空间,内存划分是连续的;链表的实质是一个个对象,但是对象会携带前或后(数学表示前,后,前后)元素的指针(引用,内存地址),树和链表有些相似,树是从根节点出发的,每个节点都有自己的左右孩子,还有一个父亲节点。原创 2023-11-07 17:13:49 · 303 阅读 · 1 评论 -
数据结构和算法的用处
怎么才能把数据和操作数据的方法封装到一起,来造出 class / prototype 这种东西?编程问题基本上都可以引申为数据结构的使用转载 2022-07-20 17:30:00 · 792 阅读 · 0 评论 -
初体验递归
Java 打印Word文档 - E-iceblue - 博客园原创 2022-05-14 07:54:28 · 127 阅读 · 0 评论 -
初识数据结构
数组Array: 自己实现数组,依托的还是jdk底层的静态数组E[] data,数组的实际元素个数用size变量维护;栈Stack: 先进后出FILSO,所有的操作时间复杂度都是O(1)队列Queue: 队列和栈所定义的接口方法一致,玩法不一致的地方就是队列是先进先出FIFO,如果使用上面自定义的Array动态数组做队列实现,出队的操作是O(n)的复杂度,所以设计一个循环队列,队首元素出队之后,不需要移动元素,这时候队列的所有操作的时间复杂度也是O(1)原创 2021-10-07 21:24:29 · 141 阅读 · 0 评论 -
浅谈 Java Stack 类
Deque 是双端队列的意思。所谓的双端队列,就是能在线性数据结构的两段,进行插入和删除操作。大家可以想象,由于 Stack 的定义是在同一端进,同一端出。所以,如果 Deque 可以满足在两段进行插入和删除,自然也能在同一端进行插入和删除,也就是可以以此为基础,做成一个 stack。等等!这里有问题!很多同学应该能马上反应过来了。这里有问题!因为我们根据 Java 官方推荐的方法声明的这个 stack,虽然变量名称是 stack,但它实际上是一个 deque。原创 2023-02-05 23:08:42 · 1455 阅读 · 0 评论 -
线段树(区间树) SegmentTree
线段树可以用数组的形式构建,也可以用链表的方式构建,本文使用数组的方式构建。原创 2022-07-22 20:45:14 · 195 阅读 · 0 评论