
数据结构与算法
实现各种数据结构算法的源码
漆黑丶
帅哥
展开
-
【算法】LRU:最近最久未使用
【代码】【算法】LRU:最近最久未使用。原创 2022-09-20 19:43:03 · 377 阅读 · 1 评论 -
【算法】欧几里德算法求最大公约数(GCD算法)
辗转相除法:辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。方法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。那么最后的除数就是这两个数的最大公约数。public int gcd(int a, int b){ return b == 0...原创 2020-03-12 14:15:21 · 1058 阅读 · 1 评论 -
【算法】Java数据结构节点定义
一、树的定义/** 树的定义 */ Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } 二、链表节点的定义/** 链表节点的...原创 2020-03-15 19:26:39 · 2805 阅读 · 0 评论 -
【算法】int[ ]、Integer[ ]、List<Integer>、List<String>相互转化
一、int[ ] 转成 Integer[ ], List< Intege r>, List< String >(1)int[ ] 转成 Integer[ ] Integer[] integers = Arrays.stream(ints).boxed().toArray(Integer[]::new);(2)int[ ] 转成 List< Integer ...原创 2020-04-19 14:50:09 · 2143 阅读 · 0 评论 -
【算法】 用PriorityQueue实现最大最小堆
PriorityQueue(优先队列),一个基于优先级堆的无界优先级队列。实际上是一个堆(不指定Comparator时默认为最小堆),通过传入自定义的Comparator函数可以实现大顶堆。PriorityQueue<Integer> minHeap = new PriorityQueue<Integer>(); //小顶堆,默认容量为11PriorityQueue<Integer> maxHeap = new PriorityQueue<Integer>原创 2021-04-11 15:32:03 · 412 阅读 · 1 评论 -
【算法】Java实现前缀树(Trie)
TrieTrie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。boolean starts原创 2021-11-03 10:15:26 · 666 阅读 · 0 评论 -
【算法】Java根据前序、中序遍历创建二叉树和根据中序、后序遍历创建二叉树代码实现(包括前序、中序、后序遍历代码实现)
Java根据前序、中序遍历创建二叉树根据中序、后序遍历创建二叉树代码实现(包括前序、中序、后序遍历代码实现)import java.util.Scanner;class TreeNode {//树节点 int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}...原创 2020-03-21 21:00:51 · 1662 阅读 · 1 评论 -
【算法】快排
首先设置最左位置的值为一个哨兵,然后设置left和right分别为数组的起始位置和终止位置。然后从right右边开始,找到一个比哨兵小的数值,设置到哨兵的位置上,然后从left左边往右开始,找到一个比哨兵大的数值,设置到right的位置上,重复如此,最后哨兵设置到left == right 位置上。原创 2022-09-19 13:06:57 · 274 阅读 · 0 评论