![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 71
wzq_55552
认真做事,好好生活。(给个关注呗←_←)
展开
-
Java数据结构与算法——拓扑排序
拓扑排序,bfs和dfs两种实现方式原创 2023-04-04 10:48:14 · 2053 阅读 · 2 评论 -
Java数据结构与算法——手撕LRU&LFU算法
手撕LRU&LFU算法原创 2023-02-26 21:53:17 · 988 阅读 · 0 评论 -
Java数据结构与算法——有限状态机(DFA)
在编程的时候,经常需要根据一个当前状态和各种可能的输入来实现不同的逻辑以及维护状态的变化,一般用大量if…else或者switch…case来遍历实现,这其实就涵盖了状态机的思想。题目具有很多逻辑判断,为了减少代码冗余,可用枚举或Map约束好状态,通过状态转移实现逻辑判断。在计算理论中,确定有限状态自动机或确定有限自动机(英语:deterministic finite automaton, DFA)是一个能实现状态转移的自动机。对于一个给定的属于该自动机的状态和一个属于该自动机字母表Σ的字符,它都能根据事原创 2021-04-20 11:13:23 · 1960 阅读 · 1 评论 -
Java数据结构与算法——原地哈希算法
原地哈希算法原地哈希算法用来求解空间复杂度为O(1)的题目,且求解的结果范围是[0, len(nums)]之间的,nums是题目提供的求解数组。原地哈希算法主要应用在结果范围为 [0, len(nums)] 的数组解法中,空间复杂度有限,只有一个原数组,将数组元素本身作为nums 的下标,即 nums[nums[i]],元素本身存放到原数组下标中,数组本身值则存放标记,通过负数标记求解。下面将结合leetcode 题目做一些总结。题目描述:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数原创 2021-04-17 10:31:57 · 587 阅读 · 0 评论 -
Java数据结构与算法——双指针(滑动窗口)
双指针双指针也是所谓滑动窗口算法。一般用于求解具有某种特质的子数组、子字符串、链表查询的分隔问题,通过两个指针来标识窗口的边界(子数组、子字符串、链表标记)。顾名思义,有2个指针,头指针和尾指针(窗口边界),结合while使用。二分也是利用双指针的思想。import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;/** * Title:NC41-最长无重复, 数组中原创 2021-03-26 22:11:30 · 502 阅读 · 0 评论 -
Java数据结构与算法——最小生成树
最小生成树关于图的几个概念定义:连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个顶点的代价,称这种连通图叫做连通网。生成树:一个连通图的生成树是指一个连通子图,它含有图中全部n个顶点,但只有足以构成一棵树的n-1条边。一颗有n个顶点的生成树有且仅有n-1条边,如果生成树中再添原创 2021-03-25 15:15:18 · 854 阅读 · 0 评论