![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 66
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 评论 -
笔试题目:RMB组合,有如下RMB 面额, 1,2,5,10,20,50,100,给定各面额纸币数和RMB总额,求组合方案——递归回溯算法
RMB组合,有如下RMB 面额, 1,2,5,10,20,50,100,给定一个RMB总额,求组合方案。各面额数没限制。动态规划实现参考:https://blog.csdn.net/qq_33619378/article/details/82748576如果需要纪录各方案的面额,则得使用递归回溯,代码如下:import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * Title: * Desc原创 2021-03-27 10:56:50 · 1708 阅读 · 2 评论 -
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 评论 -
Java数据结构与算法——并查集
并查集并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(Union-find Algorithm)定义了两个用于此数据结构的操作:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。Union:将两个子集合并成同一个集合。由于支持这两种操作,一个不相交集也常被称为联合-查找数据结构(Union-find Data Structure)或合并-查找集合(Merge-find Set)。为了更加精确的定义这些原创 2021-03-25 14:27:55 · 159 阅读 · 0 评论