面试题
面试题
云养猫v2
这个作者很懒,什么都没留下…
展开
-
Longest Repeating Substring + 最长重复子串 + 后缀数组
public class LongestRepeatedSubstring { // Do not instantiate. private LongestRepeatedSubstring() { } /** * Returns the longest common string of the two specified strings. * * @param s one string * @param t the other str原创 2020-10-01 09:40:48 · 158 阅读 · 0 评论 -
实现分布式锁的三种实现方式
https://mp.weixin.qq.com/s/xcd8NWYMzpVJ3UKlGPIt9g基于数据库的实现方式基于数据库的实现方式的核心思想是:在数据库中创建一个表,表中包含方法名等字段,并在方法名字段上创建唯一索引,想要执行某个方法,就使用这个方法名向表中插入数据,成功插入则获取锁,执行完成后删除对应的行数据释放锁。创建一个表:想要执行某个方法,就使用这个方法名向表中插入数据:因为我们对method_name做了唯一性约束,这里如果有多个请求同时提交到数据库的话,数据库会保证转载 2020-09-21 16:26:47 · 92 阅读 · 0 评论 -
限流算法
https://www.infoq.cn/article/Qg2tX8fyw5Vt-f3HH673固定窗口计数器固定窗口计数器算法概念如下:将时间划分为多个窗口;在每个窗口内每有一次请求就将计数器加一;如果计数器超过了限制数量,则本窗口内所有的请求都被丢弃当时间到达下一个窗口时,计数器重置。固定窗口计数器是最为简单的算法,但这个算法有时会让通过请求量允许为限制的两倍。考虑如下情况:限制 1 秒内最多通过 5 个请求,在第一个窗口的最后半秒内通过了 5 个请求,第二个窗口的前半秒内又通过了转载 2020-09-21 16:07:47 · 156 阅读 · 0 评论 -
Guava RateLimiter源码解析
RateLimiter limiter = RateLimiter.create(10.0); // 每秒不超过10个任务被提交 for (int i = 0; i < 20; i++) { double acquire = limiter.acquire();// 请求RateLimiter, 超过permits会被阻塞// System.out.println("call execute.." + acquire); .原创 2020-09-21 14:18:51 · 249 阅读 · 0 评论 -
五百个数组,每个数组从小到大排序,找到五百个最大的数。
private void exch(int[] nums, int i, int j) { int tmp = nums[i]; nums[i] = nums[j]; nums[j] = tmp; } class Node { int[] nums; int idx; public Node(int[] nums) { this.nums = nums;原创 2020-09-18 16:10:45 · 480 阅读 · 0 评论 -
随机打印数组内所有元素
public int[] randomPrint(int[] nums) { int n = nums.length; Random random = new Random(); int[] res = Arrays.copyOf(nums, n); for (int i = 0; i < n; i++) { int r = i + random.nextInt(n-i); // i与 i 后面的下标对应元..原创 2020-09-17 20:21:02 · 374 阅读 · 0 评论 -
汉诺塔问题 Tower of Hanoi
有 A,B,C 三根柱子,A 上面有 n 个盘子,我们想把 A 上面的盘子移动到 C 上,但是要满足以下三个条件:每次只能移动一个盘子;盘子只能从柱子顶端滑出移到下一根柱子;盘子只能叠在比它大的盘子上。public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) { movePlate(A.size(), A, B, C); } private v原创 2020-09-16 15:28:57 · 263 阅读 · 0 评论 -
待解决
1,控制mq消费端的速率?线程池2,Spring本地获取代理类?spring容器里存放的是代理后的类3,Spring顺序执行 @Order原创 2020-09-08 16:27:33 · 100 阅读 · 0 评论 -
给定一个输入字符串数组,对其处理,要求不出现b以及连续的ac,输出处理后的子串
// 输入:一个字符串// 输出:是一个字符数组,不包含b和连续的ac子串// 输入:bac,输出:空串// 输入:abc,输出:空串// 输入:aaabccc,输出:空串(美团)public String filterString(String s) { int n = s.length(); Deque<Character> stack = new ArrayDeque<>(); StringBuilder sb = ne原创 2020-09-06 13:40:10 · 240 阅读 · 0 评论 -
提高QPS的方法
缓存多线程(线程池)批处理异步化https://blog.csdn.net/dapao123456789/article/details/80793512转载 2020-09-05 09:21:11 · 297 阅读 · 0 评论 -
最大在线人数,最大在线人数的最长在线时间区间是什么
class RangeTime { int startTime; int endTime;}public void f(List<RangeTime> rangeTimes) { int[] onlineNums = new int[24 * 60 * 60]; int maxOnlineNum = 0; int maxOnlineStart = 0, maxOnlineEnd = 0; int maxOnlineNumLast原创 2020-07-27 11:05:54 · 639 阅读 · 0 评论