![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 87
aasoga
这个作者很懒,什么都没留下…
展开
-
微服务相关问题(限流,秒杀系统)
微服务为了保证高可用常用的几个手段:限流,降级,缓存和熔断等,这里讲一下几种限流方案。限流可以保证使用有限的资源提供最大化的服务能力,按照预期流量提供服务,超过的部分将会拒绝服务、排队或等待、降级等处理。限流的类库有很多,不同语言的有不同的类库,如大Java的有concurrency-limits、Sentinel、Guava 等 1、计数器 固定窗口计数器 计数限流是最为简单的限流算法,日常开发中,我们说的限流很多都是说固定窗口计数限流算法,比如某一个接口或服务1s最多只能接收1000个请求,那么我原创 2021-05-28 15:33:00 · 218 阅读 · 0 评论 -
学习算法:字典序的第k小数字
题目如下: 给定整数n和k,找到1到n中字典序第k小的数字。 注意:1 ≤ k ≤ n ≤ 109 这道题的难点在于字典序,字典序是按照前缀大小来排序的,比如11和2,实际11排在2的前面,和正常数字排序很不一样,因此需要抽象出字典序模型,即实际上是一个十叉树,从网上找了个图如下 因此只需要确定三件事就可以确定k的位置即: 怎么确定一个前缀下所有子节点的个数? 如果第 k 个数在当前的前缀下,怎么继续往下面的子节点找? 如果第 k 个数不在当前的前缀,即当前的前缀比较小,如何...原创 2020-06-26 12:12:59 · 420 阅读 · 0 评论 -
每天一道算法题-两个链表逆序相加
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 来源:力扣(LeetCode) 链接:https://lee...原创 2020-06-20 15:11:05 · 359 阅读 · 0 评论 -
每天一道算法题(1)
1、求一个字符串连续不重复子串的最长长度 即比较经典的移动游窗,将字符放入队列中,当有重复字符时则移动左标,最后取左右标间隔最大的。 有两种方式可以实现,第一种比较简单的list方式 // list方式 public static int lengthOfLongestSubstring(String s) { if (s.length() == 0) { return 0; } String[] strArr = s.原创 2020-06-20 01:19:06 · 302 阅读 · 0 评论