![](https://img-blog.csdnimg.cn/20191230213520367.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
那些错过的PPT,你还记得吗
codingjav
骑马Coding
展开
-
限流算法之计数器算法
计数器法是限流算法里最简单也是最容易实现的一种算法。假设一个接口限制一分钟内的访问次数不能超过100个,维护一个计数器,每次有新的请求过来,计数器加一,这时候判断,如果计数器的值小于限流值,并且与上一次请求的时间间隔还在一分钟内,允许请求通过,否则拒绝请求,如果超出了时间间隔,要将计数器清零。/** * 限流算法集合 */@Slf4jpublic class RateLimitUtils { //初始时间 private static long startTime =原创 2021-08-21 00:31:34 · 776 阅读 · 0 评论 -
Java偷懒洗牌算法
public class Card { private String card; private String color; public Card(String card, String color) { this.card = card; this.color = color; } public String toString() { String ss= color+":"+card+" ";..原创 2021-08-18 15:15:29 · 102 阅读 · 0 评论 -
详解优先队列
一、队列与优先队列的区别 1、队列是一种FIFO(First-in-Firse-out)先进先出的数据结构,对应生活中排队场景,排在前面的人总是先通过,依次进行。 2、优先队列是特殊的队列,优先一词,就可以看出有插队的现象。比如生活中在乘车买票进站时,就会有些比较急的人来插队 ,他们就在前面先通过验票。优先队列至少含有两种操作的数据结构:insert(即将元素插入到优先队列中;以及d...原创 2019-08-02 00:15:39 · 5728 阅读 · 0 评论 -
面试中的 10 大排序算法总结
前言查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这些排转载 2016-06-26 01:15:50 · 1585 阅读 · 1 评论 -
Leetcode-区域和检索-数组不可变
描述:给定一个整数数组 nums,求出数组从索引i到j(i≤j) 范围内元素的总和,包含i, j两点。说明:可以假设数组不可变;会多次调用区间和sumRange方法示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1...原创 2020-01-01 18:41:29 · 127 阅读 · 0 评论 -
Leetcode-二叉搜索树最近公共祖先
描述:给定一个二叉搜索树,找到该树中两个指定节点的最近公共节点(最近公共祖先节点可以为节点本身) 说明:所有节点的值都是唯一的。两个节点为不同节点且存在于给定的二叉搜索树。首先复习一下二叉搜索树的性质:左子树上所有节点的值都小于等于根节点的值 右子树上所有节点的值都大于等于根节点的值 左子树和右子树也都是二叉搜索树方法一:递归从根节点开始遍历树 如果节...原创 2019-12-31 22:13:03 · 160 阅读 · 0 评论 -
LeetCode-计数质数
描述:统计所有小于非负整数n的质数的数量。示例:输入:10;输出:4;解释:小于10的质数一共有4个,它们是2,3,5,7。解题思路:1、暴力破解验证一个数是否为质数有很多方法。最容易想到的就是暴力破解,采用暴力计算一步步碾压过去的方法。虽然不是最优的,但是对于我们解题是最有效的。public boolean isPrime(int n){ for(i...原创 2019-12-31 08:49:06 · 208 阅读 · 0 评论