![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
精妙的算法
文章平均质量分 51
Ax1a0的酱油瓶
一位喜欢从零开始的小菜鸟,坚持每周更新2~3篇高质量博客。
展开
-
基数排序、桶排序、计数排序
基数排序、桶排序、计数排序1、基数排序是一种非比较算法,其原理是将整数按每个位数分别比较。2、桶排序桶排序,将数据范围缩小,然后调用其他排序算法对各个桶子里的数据进行排序3、计数排序类似于桶排序,不过每个桶子的范围是1。4、代码演示package DataStruct;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;/**原创 2022-05-25 16:48:40 · 113 阅读 · 0 评论 -
最短路径学习代码总结
最短路径学习代码总结package DataStruct;import java.util.Arrays;/** * @author Ax1a0 * Created in 2022/5/24 10:17 */public class ShortestPath { private static final int max = Integer.MAX_VALUE >> 1; /* * dijkstra算法,应用贪心的策略,解决单源到多目标点的最短路问原创 2022-05-24 11:18:26 · 113 阅读 · 0 评论 -
单调栈学习总结
1、单调栈用来做什么?栈内的元素满足单调性,可以以O(n)的时间复杂度解决比如在一维数组中对每一个数找到第一个小于自己的元素等问题。2、单调栈的使用2.1 基本需求在一维数组中对每一个数找到第一个小于自己的元素,如果没有,返回-1代码实现如下:public int[] findMinLeft(int[] nums){ int len = nums.length; int[] res = new int[len]; res[0] = -1;原创 2022-05-23 20:39:10 · 103 阅读 · 0 评论 -
LeetCode刷题笔记01-最小的K个数
LeetCode刷题笔记01-最小的K个数1、题目分析来自于剑指 Offer 40. 最小的k个数。如果熟悉优先队列的话,本题首先想到的可能是用Java中的优先队列这一数据结构来做。另外,如果熟悉快排,那么可以探索出另外一种思路,由于题目仅要求找到最小的K个数,并未要求这K个数的顺序,因此,如果我们通过快排的partition函数找到第K小的数的位置,那么它连同他前面的K-1个数就是最小的K个数。此外,面试中也可能会让我们手动写一个大根堆来解这道题。下面分别给出以上三种解法。2、优先队列P原创 2022-03-23 09:56:14 · 869 阅读 · 0 评论