44
55先从项目开始的,刚开始聊了一下怎么学习java的,学习方式:
66
7- > hdfs中存的是什么,小文件存在哪里?
7+ > hdfs中存的是什么,小文件存在哪里?
88
99小文件压缩
1010
11- > redis实现点赞和排行榜怎么做的?具体的数据结构
11+ > redis实现点赞和排行榜怎么做的?具体的数据结构
1212
1313** zset数据结构**
1414
1919- *** hash*** ,*** hash*** 的作用就是关联元素 *** value*** 和权重 *** score*** ,保障元素 *** value*** 的唯一性,可以通过元素 *** value*** 找到相应的 *** score*** 值
2020- 跳跃表,跳跃表的目的在于给元素 *** value*** 排序,根据 *** score*** 的范围获取元素列表
2121
22- > 接口幂等性如何保证的,为什么用zookeeper分布式锁保证幂等性,怎么实现的?我回答了一点点,又问这样效率高吗?(面试官觉得这种做法不好)怎么优化?
22+ > 接口幂等性如何保证的,为什么用zookeeper分布式锁保证幂等性,怎么实现的?我回答了一点点,又问这样效率高吗?(面试官觉得这种做法不好)怎么优化?
2323
2424这样是将所有的请求串行化了,效率并不高
2525
26- > zookeeper选举过程,详细说一下
26+ > zookeeper选举过程,详细说一下
2727
28-
29-
30- > 你刚才讲redis数据是存在内存中的,那么zk的数据存在哪里?磁盘还是内存?我答了内存又问那么zk的数据持久化怎么做的,会不会丢数据?和redis持久化的异同
28+ > 你刚才讲redis数据是存在内存中的,那么zk的数据存在哪里?磁盘还是内存?我答了内存又问那么zk的数据持久化怎么做的,会不会丢数据?和redis持久化的异同
3129
3230zk数据是存在内存中的,然后也有类似于redis的内存快照和事物日志的持久化策略
3331
34- > 说一下常用的二叉树,红黑树和AVL树的那个更好?为什么,说一下各自的时间、空间复杂度
35-
36-
37-
38- > HashMap桶的位置是怎么找到的?为什么用 & 不用 % ,为什么是(length - 1),为什么要右移32位(一半)
39-
40-
41-
42- > HashMap添加删除查询的时间复杂度和空间复杂度?你刚才说基于数组的,那么ArrayList的呢?
32+ > 说一下常用的二叉树,红黑树和AVL树的那个更好?为什么,说一下各自的时间、空间复杂度
4333
34+ > HashMap桶的位置是怎么找到的?为什么用 & 不用 % ,为什么是(length - 1),为什么要右移32位(一半)
4435
36+ > HashMap添加删除查询的时间复杂度和空间复杂度?你刚才说基于数组的,那么ArrayList的呢?
4537
4638### 算法题
4739
48- > 一个任意长度的数组,里面装了任意个数字,数字可能是正数、负数和0,就该数组的子数组中积最大的子数组(前提是子数组中数据是连续的,不能跳跃)
40+ > 一个任意长度的数组,里面装了任意个数字,数字可能是正数、负数和0,就该数组的子数组中积最大的子数组(前提是子数组中数据是连续的,不能跳跃)
4941
5042动态规划:
5143
@@ -69,12 +61,12 @@ public int maxAbsoluteSum(int[] nums) {
6961}
7062```
7163
72- > 两张表,用户表和关系表,用户表中有用户id,关系表中有用户的朋友id,查出朋友最多的前十个用户并输出信息
64+ > 两张表,用户表和关系表,用户表中有用户id,关系表中有用户的朋友id,查出朋友最多的前十个用户并输出信息
7365
7466``` sql
7567select * from user where uid in (
76- select uid from (
77- select u .uid ,count (1 ) cnt from user u,relationship r where u left join r group by u .uid
68+ select uid from (
69+ select u .uid ,count (1 ) cnt from user u,relationship r where u left join r group by u .uid
7870 ) order by cnt desc
7971) limit 10 ;
8072```
@@ -287,20 +279,18 @@ private void inorderTraversalByStack(Node<E> node) {
287279否则输出小红操作的最少次数。可以证明,如果存在某种操作,那么最少次数一定是固定的。
288280```
289281
290-
291-
292282```java
293283算法2:
294284题目描述
295285牛牛对n个城市的旅游情况进行了规划
296286已知每个城市有两种属性x和y,其中x表示去第号城市的花费表示在第号城市游玩后会得到的开心值,现在生生希望从中挑选出一些城市去游玩,但挑选出的城市必须满足任意两个城市之间花费的绝对值小于k,他想请你帮他计算出在满足上述条件下能得到的最大开心值是多少
297-
287+
298288输入描述:
299289第一行输入两个正整数n和k.
300290接下来n行.每行输入两个整数xi和yi分别表示每个城市的两种属性。1<n <100000
3012911 < k < 1000000000
3022920 ≤ xi,yi ≤ 1000000000
303-
293+
304294输出描述:
305295输出一个整数表示答案。
306296```
@@ -309,10 +299,10 @@ private void inorderTraversalByStack(Node<E> node) {
309299算法3:
310300题目描述
311301生牛有一个nxm的矩阵,牛生想要找一个子方阵,方阵的大小为lxl且 l> 2,这个方阵的价值为其四个角上数字之和。牛生想求价值最大的子方阵,请你告诉牛生这个子方阵的价值。
312-
302+
313303输入描述:
314304第一行为两个数n,m,表示表示矩阵大小。接下来有n行,每行有m个数 aijo2 ≤ n,m ≤ 10²,1 ≤ aij ≤ 109
315-
305+
316306输出描述:
317307输出为一行,表示答案。
318308```
@@ -339,8 +329,6 @@ main{
339329}
340330```
341331
342-
343-
344332## 爱的番茄一面
345333
3463341 . hadoop HA结点中多个NameNode的职能(active、standby结点)
@@ -388,8 +376,11 @@ main{
388376- Container: 服务运行容器,负责加载、运行服务提供者
389377
390378- Provider: 暴露服务的服务提供方,会向注册中心注册自己提供的服务
379+
391380- Consumer: 调用远程服务的服务消费方,会向注册中心订阅自己所需的服务
381+
392382- Registry: 服务注册与发现的注册中心。注册中心会返回服务提供者地址列表给消费者
383+
393384- Monitor: 统计服务的调用次数和调用时间的监控中心。服务消费者和提供者会定时发送统计数据到监控中心
394385
395386** 概述题二:下面加锁方式的代码有什么不好**
@@ -443,8 +434,6 @@ public class Main {
443434}
444435```
445436
446-
447-
448437## 古茗
449438
450439### 古茗笔试
@@ -459,21 +448,20 @@ public class Main {
459448
460449``` java
461450public class Container {
462- // 这里底层直接维护一个HashMap,也可以自己写一个简单的字典
463- // Void 是void的包装类型,常用填充泛型,表示是没有返回值
464- Map<Char ,Void > map = new HashMap<> ();
465- public boolean contains (char c ){
466- return map. containsKey(c);
467- }
468-
469- public boolean add (char c ){
470- return map. put(c,null )
471- }
472-
451+ // 这里底层直接维护一个HashMap,也可以自己写一个简单的字典
452+ // Void 是void的包装类型,常用填充泛型,表示是没有返回值
453+ Map<Char ,Void > map = new HashMap<> ();
454+ public boolean contains (char c ){
455+ return map. containsKey(c);
456+ }
457+
458+ public boolean add (char c ){
459+ return map. put(c,null )
460+ }
461+
473462}
474463```
475464
476-
477465### 古茗一面
478466
4794671 . 先介绍下你的项目
@@ -488,7 +476,7 @@ public class Container {
48847610 . 讲一下MySQL InnoDB引擎的特点
48947711 . InnoDB和MyISAM索引的区别(B+树的区别)
49047812 . InnoDB索引结构?你刚才说了页(Page),详细讲一下page的结构(记得不是很清楚了,好久没复习😭)
491- ![ ] ( https://cdn.fengxianhub.top/resources-master/20220826102631.png )
479+ ![ ] ( https://cdn.fengxianhub.top/resources-master/20220826102631.png )
49248013 . 你在实习中使用的技术栈,有哪些收获?答:学会了被老板PUA
493481
494482## 小红书
@@ -511,15 +499,13 @@ public class Container {
511499输出:2
512500```
513501
514-
515-
516502** 算法二**
517503
518504小明是一名魔法师,他会n种法术,其中第i种法术的威力为ai,他经常通过双手各自释放一种法术来提升威力,能得到的威力值为双手各自释放的法术的威力的乘积,但是他还不够强大,双手释放的两种法术必须是不同的,即不能双手释放同一种法术。这天他接到了一个任务,需要释放威力值至少为K才能完成,他想请你帮他算一算,在两只手都释放法术的情况下,共有多少方案能达到威力值K。每种方案可记作(u,v),u≠v,其威力值为au * av,(u,v)和(v,u)会被视为不同的方案
519505
520506``` java
521507第二行为n个正整数a1, a2,...... an,其中ai表示第i个法术的威力为ai。
522-
508+
523509输出威力值至少为K 的方案数
524510```
525511
@@ -549,12 +535,6 @@ public class Container {
549535
550536![ image-20220908013930762] ( https://cdn.fengxianhub.top/resources-master/202209080139862.png )
551537
552-
553-
554-
555-
556-
557-
558538算法二:
559539
560540![ image-20220908013915142] ( https://cdn.fengxianhub.top/resources-master/202209080139236.png )
@@ -568,12 +548,3 @@ public class Container {
568548![ image-20220908013846197] ( https://cdn.fengxianhub.top/resources-master/202209080138302.png )
569549
570550
571-
572-
573-
574-
575-
576-
577-
578-
579-
0 commit comments