共计 1583 个字符,预计需要花费 4 分钟才能阅读完成。
先说一句:面试官上来强调本人不是学 java 的,次要探讨为主,可是我发现面试官问的问题一点都不像没学过 java~
共面了 1 小时 40 分钟
1.java 垃圾回收机制
新生代 / 老年代 其它垃圾回收机制
2.java 面向对象个性
继承
封装
多态
3. 设计模式
4. 单例模式
5.map 的底层实现
6.hash 函数如何实现
7. 哈希抵触的解决办法
再哈希
建设公共缓冲区
8.hashmap 查问复杂度 / 升高复杂度办法
9.hashmap 线程不平安
10.juc 中的 concurrentHashmap 如何保障线程平安
11. 罕用的汇合类型
arraylist
linkedlist
12.arrayList 和 linkedList 区别
13. 链表中如何使查问速度更快
建索引?
14. 晓得哪些本地缓存?redis?lru?
15. 计算机网络七层模型
16. 浏览器每一个标签页都是一次 tcp 连贯吗
17.http 和 https 的比拟
18.https 加密算法是对称的还是非对称的?
19.TCP 三次握手四次挥手
20. 伪造第三次握手,如何保障?
21.syn 攻打?还是什么攻打?
22.TIME_WAIT 作用
23. 多路复用、epoll 办法的长处 存储连贯的是链表吗
select poll epoll
24. 过程和线程
25. 线程间通信
26. 过程间通信
27. 共享内存是在 A 过程中还是 B 过程?
应该都不是
28. 线程间同步
29.sychronized 和 RetrantLock 异同点
30. 乐观锁和乐观锁,他们的效率
31. 每次申请都是对锁的一个批改,两种策略效率如何
32. 排序算法及各自的最好最坏复杂度及稳定性
33. 归并排序和疾速排序的算法思维
分治
34. 疾速排序的最坏状况,如何扭转
35. 雷同的子问题能够用分治法,那不同的子问题?
36. 最初一题算法题
牛客网本题探讨链接
小 Q 在进行一场竞技游戏,这场游戏的输赢要害就在于是否抢夺一条长度为 L 的河道,即能够看做是 [0,L] 的一条数轴。
这款竞技游戏当中有 n 个能够提供视线的道具 – 真视守卫,第 i 个真视守卫可能笼罩[xi,yi]。当初小 Q 想晓得至多用几个真视守卫就能够笼罩整段河道。
输出形容:
输出包含 n + 1 行
第一行包含两个正整数 n 和 L(1<=n<=10^5,1<=L<=10^9)
接下来的 n 行,每行两个正整数 xi,yi(0<=xi<=yi<=10^9), 示意第 i 个真视守卫笼罩的区间
输入形容,一个示意起码须要的真视守卫数量,如果无解,输入 -1。
样例:
输出:
4 6
3 6
2 4
0 2
4 7
输入
3
import java.util.Arrays;
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);
int n = input.nextInt();
int L = input.nextInt();
int[][] nums = new int[n][2];
int ce = 0;
while (ce < n) {nums[ce][0] = input.nextInt();
nums[ce][1] = input.nextInt();
ce++;
}
System.out.println(guidenum(nums, L));
}
public static int guidenum(int[][] nums, int L) {
int count = 0;
Arrays.sort(nums, (a, b) -> a[0] - b[0]);
int start = 0, end = 0;
for (int i = 0; start < L;) {for (; i < nums.length && nums[i][0] <= start; i++)
end = Math.max(end, nums[i][1]);
if (start == end) {return -1;}
start = end;
count++;
}
return count;
}
}