随笔分类 - Java算法
摘要:并查集算法,也叫Union-Find算法,主要用于解决图论中的动态连通性问题。 Union-Find算法类 这里直接给出并查集算法类UnionFind.class,如下: /** * Union-Find 并查集算法 * @author Chiaki */ public class UnionFin
阅读全文
摘要:(1)冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有
阅读全文
摘要:打卡Leetcode每日一题 37. 解数独。 题目 编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需要遵循如下规则: 数字1-9在每一行只能出现一次; 数字1-9在每一列只能出现一次; 数字1-9在每一个以粗实线分隔的3×3宫内只能出现一次。 空白格用.表示。 思路 根据题干中给出的
阅读全文
摘要:使用快排切分实现快排和TopK问题的解题模板 import java.util.Arrays; public class TestDemo { public static void main(String[] args) { int[] arr1 = {48, 12, 6 ,8, 11}; int[
阅读全文
摘要:UDP,全称User Datagram Protocol,用户数据报协议,是TCP/IP四层参考模型中传输层的一种面向报文的、无连接的、不能保证可靠的、无拥塞控制的协议。UDP协议因为传输效率高,常用于即时通信,比如视频/语音聊天,直播等。 1. UDP数据报的格式 用户数据报UDP有两个字段:数据
阅读全文
摘要:LRU缓存机制,全称Least Recently Used,字面意思就是最近最少使用,是一种缓存淘汰策略。换句话说,LRU机制就是认为最近使用的数据是有用的,很久没用过的数据是无用的,当内存满了就优先删除很久没有使用的数据。 基于LeetCode146,可以使用哈希链表或者自定义双端链表类+哈希表两
阅读全文
摘要:二叉树的遍历方式一般包括前序遍历、中序遍历以及后序遍历: 前序遍历:根结点 | 左子树 | 右子树 中序遍历:左子树 | 根结点 | 右子树 后序遍历:左子树 | 右子树 | 根结点 二叉树遍历的性质: 已知二叉树的前序遍历和中序遍历可以唯一重建二叉树; 已知二叉树的中序遍历和后序遍历可以唯一重建二
阅读全文
摘要:层序遍历的思路:若树为空,则返回空,否则从树的第一层开始,即从根节点,从上而下逐层遍历。 1. 二叉树层序遍历Ⅰ——剑指offer32-Ⅰ 从上到下,从左到右打印二叉树,返回一维数组int[] res。 class Solution { public int[] levelOrder(TreeNod
阅读全文
摘要:二叉树的遍历方式包括前序遍历、中序遍历和后序遍历,其实现方式包括递归实现和非递归实现。 前序遍历:根节点 | 左子树 | 右子树 中序遍历:左子树 | 根节点 | 右子树 后序遍历:左子树 | 右子树 | 根节点 1. 递归实现 递归方式实现代码十分简洁,三种遍历方式的递归实现代码结构相同,只是执行
阅读全文
摘要:利用Java语言实现七大经典排序算法:冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序以及快速排序。 分类 类别 算法 插入排序类 插入排序、希尔排序 选择排序类 选择排序、堆排序 交换排序类 冒泡排序、快速排序 归并排序类 归并排序 复杂度 算法 平均情况 最好情况 最坏情况 辅助空间 稳
阅读全文
摘要:题目描述 这是2021广联达校招提前批笔试算法题之一。 我们希望一个序列中的元素是各不相同的,但是理想和显示往往是有差距的。现在给出一个序列A,其中难免有相同的元素,现在提供了一种变化方式,使得经过若干次操作后一定可以得到一个元素各不相同的序列。 这个操作是这样的,令x为序列中最小的重复数字,你需要
阅读全文

浙公网安备 33010602011771号