Skip to content

Commit 21658e3

Browse files
修改部分代码
修改部分代码
1 parent dcfe6a2 commit 21658e3

3 files changed

Lines changed: 91 additions & 77 deletions

File tree

.obsidian/workspace

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"state": {
1010
"type": "markdown",
1111
"state": {
12-
"file": "中间件/MongoDB/MongoDB高级特性.md",
12+
"file": "软件工程/DevOps.md",
1313
"mode": "source",
1414
"source": false
1515
}
@@ -77,7 +77,7 @@
7777
"state": {
7878
"type": "backlink",
7979
"state": {
80-
"file": "中间件/MongoDB/MongoDB高级特性.md",
80+
"file": "软件工程/DevOps.md",
8181
"collapseAll": false,
8282
"extraContext": false,
8383
"sortOrder": "alphabetical",
@@ -94,7 +94,7 @@
9494
"state": {
9595
"type": "outgoing-link",
9696
"state": {
97-
"file": "中间件/MongoDB/MongoDB高级特性.md",
97+
"file": "软件工程/DevOps.md",
9898
"linksCollapsed": false,
9999
"unlinkedCollapsed": true
100100
}
@@ -117,7 +117,7 @@
117117
"state": {
118118
"type": "outline",
119119
"state": {
120-
"file": "中间件/MongoDB/MongoDB高级特性.md"
120+
"file": "软件工程/DevOps.md"
121121
}
122122
}
123123
}
@@ -126,19 +126,19 @@
126126
}
127127
],
128128
"direction": "horizontal",
129-
"width": 289
129+
"width": 310
130130
},
131131
"active": "8f4112296b480386",
132132
"lastOpenFiles": [
133-
"中间件/Mybatis-plus自动生成entity.md",
134-
"中间件/MyBatisPlus.pdf",
135-
"中间件/ElasticSearch/ElasticSearch.md",
136-
"面试题/面试/面试复盘.md",
137-
"中间件/MongoDB/MongoDB快速上手.md",
138-
"中间件/MongoDB/MongoDB高级特性.md",
139-
"java/Java8新特性.md",
140-
"AlgorithmAndDataStructure/11-Hash表.md",
133+
"Linux/Linux常用命令.md",
134+
"AlgorithmAndDataStructure/算法/5-递归.md",
141135
"SpringCloud/黑马SpringCloud-阿里巴巴/Centos7安装Docker.md",
142-
"软件工程/软件开发模式之敏捷开发模型.md"
136+
"SpringCloud/2_Eureka学习.md",
137+
"SpringCloud/1_微服务学习、初识微服务.md",
138+
"SpringCloud/黑马SpringCloud-阿里巴巴/14-Sentinel源码分析.md",
139+
"SpringCloud/黑马SpringCloud-阿里巴巴/13-Nacos源码分析.md",
140+
"SpringCloud/黑马SpringCloud-阿里巴巴/12-微服务常见面试题.md",
141+
"SpringCloud/黑马SpringCloud-阿里巴巴/安装Canal.md",
142+
"打工/MongoDB问题汇总.md"
143143
]
144144
}
Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 递归(Recursion)
1+
# 递归(Recursion) & 回溯
22

33
递归:函数或方法直接或间接调用自身。是一种非常常用的编程技巧
44

@@ -8,4 +8,47 @@
88

99
生活中有很多递归现象
1010

11-
![image-20220915001701889](https://cdn.fengxianhub.top/resources-master/202209150017026.png)
11+
![image-20220915001701889](https://cdn.fengxianhub.top/resources-master/202209150017026.png)
12+
13+
14+
15+
16+
## 2. 回溯
17+
18+
### 2.1 回溯模板
19+
20+
```java
21+
void backtracking(参数) {
22+
if (终止条件) {
23+
存放结果;
24+
return;
25+
}
26+
27+
for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
28+
处理节点;
29+
backtracking(路径,选择列表); // 递归
30+
回溯,撤销处理结果
31+
}
32+
}
33+
```
34+
35+
### 2.2 组合问题
36+
37+
[Loading Question... - 力扣(LeetCode)](https://leetcode.cn/problems/combinations/)
38+
39+
```java
40+
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。
41+
42+
示例:
43+
输入: n = 4, k = 2
44+
输出:
45+
[
46+
[2,4],
47+
[3,4],
48+
[2,3],
49+
[1,2],
50+
[1,3],
51+
[1,4],
52+
]
53+
```
54+

面试题/面试/面试复盘.md

Lines changed: 32 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
先从项目开始的,刚开始聊了一下怎么学习java的,学习方式:
66

7-
>hdfs中存的是什么,小文件存在哪里?
7+
> hdfs中存的是什么,小文件存在哪里?
88
99
小文件压缩
1010

11-
>redis实现点赞和排行榜怎么做的?具体的数据结构
11+
> redis实现点赞和排行榜怎么做的?具体的数据结构
1212
1313
**zset数据结构**
1414

@@ -19,33 +19,25 @@
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
3230
zk数据是存在内存中的,然后也有类似于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
7567
select * 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
301291
1 < k < 1000000000
302292
0 ≤ 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

346334
1. 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
461450
public 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

479467
1. 先介绍下你的项目
@@ -488,7 +476,7 @@ public class Container {
488476
10. 讲一下MySQL InnoDB引擎的特点
489477
11. InnoDB和MyISAM索引的区别(B+树的区别)
490478
12. InnoDB索引结构?你刚才说了页(Page),详细讲一下page的结构(记得不是很清楚了,好久没复习😭)
491-
![](https://cdn.fengxianhub.top/resources-master/20220826102631.png)
479+
![](https://cdn.fengxianhub.top/resources-master/20220826102631.png)
492480
13. 你在实习中使用的技术栈,有哪些收获?答:学会了被老板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

Comments
 (0)