介绍一下你这个项目,是自己做着玩的还是其他目的
微服务优缺点
https://blog.csdn.net/boonya/article/details/52576362
微服务调用你们是怎么实现的,使用的feign声明式调用,那它的低层实现是采用的什么调用,httpClient效率不高
https://blog.csdn.net/fwk19840301/article/details/80229572
nginx负载均衡策略
https://www.cnblogs.com/andashu/p/6377323.html
redis数据结构,zset实现,主从交换策略
https://www.cnblogs.com/hjwublog/p/5639990.html
http://www.cnblogs.com/hjwublog/p/5660578.html
mysql索引,hash和b+tree区别及其使用场景,为什么使用b+树更多
https://blog.csdn.net/endlu/article/details/51720299
https://www.cnblogs.com/zengkefu/p/5647279.html
https://blog.csdn.net/timchen525/article/details/77691190
hash、hashmap实现,扩容方式,是否安全,currentHashMap实现原理
https://www.cnblogs.com/skywang12345/p/3310835.html
https://blog.csdn.net/Carol_1992/article/details/76735656
synchronized jvm层实现
锁分类,重量级锁,轻量级锁,自旋锁,乐观锁、悲观锁区别及使用场景,公平锁和非公平锁,锁降级升级
volatile实现及其使用场景
rabbitmq和kafka的区别及其使用场景
https://blog.csdn.net/sinat_27634939/article/details/80301656
算法:给定一个数组大小为n,数值范围为1~n-1,如何快速找出数组中第一个重复的数?若不能使用额外的内存空间,时间复杂度在n^2之内呢?
采用空间换时间方式
循环比较相邻的两个数,若相等则出现重复
(不知道他是不是想问下面这个问题)
怎么找出n在数组中出现的第一个位置
有一个数组a,有1000个元素,已经按照从小到大排序好,但是其中可能有重复的,请问怎么找出n在数组中出现的第一个位置?先简单说明你的思路,再写出代码,可以用伪代码。
用二分法实现,没找到的话返回 -1。
/** * 首先二分法查找该数n出现的位置,然后判断是否是第一次出现, * 如果不是则往前比较,直至第一次出现的地方.(index+1) */ public static void main(String[] args) { //待搜索数组,此处长度为10,可自行定义 int[] a = {0, 1, 2, 3, 4, 4, 5, 5, 5, 6}; int n = 5; int position = search(a, 0, a.length - 1, n); //显示查找结果 if (position == -1) { System.out.println("not exist!"); } else { System.out.println("position:" + position); } } //二叉搜索 public static int search(int[] a, int left, int right, int n) { int pos = 0; while (left <= right) { pos = (left + right) / 2; if (n < a[pos]) { right = pos; } else if (n > a[pos]) { left = pos; } else { break; } } //用于测试此位置是否是n第一次出现的地方 if (left <= right) { while (true) { if (pos > 0 && a[pos - 1] == a[pos]) { pos = pos - 1; } else { break; } } } if (a[pos] == n) { return pos + 1; } else { return -1; } }
你有什么问题 ...