Skip to content

Commit 726a509

Browse files
提交新信息
1 parent bd23d44 commit 726a509

File tree

7 files changed

+177
-0
lines changed

7 files changed

+177
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
## 项目准备
2020

21+
- [自我介绍](docs/interview/自我介绍和项目介绍.md)
22+
2123
- [项目准备知识](docs/project/秒杀项目总结.md)
2224

2325
## 面试知识点

docs/dataStructures-algorithms/算法面试真题汇总.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
2+
#### 算法题
3+
4+
作者:office多多
5+
链接:[https://www.nowcoder.com/discuss/374134?type=0&order=0&pos=67&page=1](https://www.nowcoder.com/discuss/374134?type=0&order=0&pos=67&page=1)
6+
7+
1. 写代码,类似高考成绩,一个表中有很多数据(无序的),给你一个成绩,查出在表中的排名
8+
2. 找出这两个链表是否有相交的点
9+
3. 判断链表有没有环,环起点在哪儿。
10+
4. 手撕topk,时间复杂度是多少。
11+
5. 写个算法,实现抢红包随机获取金额的过程[参考](https://blog.csdn.net/bjweimengshu/article/details/80045958)
12+
6. 链表反转
13+
7. 两数之和(leetcode第一题~、~)
14+
8. 判断一个字符串是否为另一个字符串子串(暴力写的)
15+
9. 股票最大利润
16+
10. 实现单链表前后交叉排序:1,2,3,4,5,6 变成 1,4,2,5,3,6
17+
11. 因式分解
18+
12. 有序二叉树,一种遍历方法使之有序,中序遍历。
19+
13. 非递归实现先序遍历
20+
14. 找无序数组中第k个数(一开始说用堆实现、后来我又想着用快排的partation实现)
21+
15. 算法题:从字符串S变到T,插入消耗2、删除消耗2、替换消耗3、求最小消耗
22+
16. 算法题:两个栈实现一个队列(实现push、pop、count三个函数)(简单)
23+
17. strcpy的实现
24+
18. 给出两个链表,找出相同的链接。a->b->c->d->f、b1->a1->c1->d->f
25+
19. 二叉树的遍历方式,手写先序遍历(参考代码:[https://www.cnblogs.com/anzhengyu/p/11083568.html](https://www.cnblogs.com/anzhengyu/p/11083568.html))
26+
20. 两个字符串的最长公共子串(参考代码:[https://www.cnblogs.com/anzhengyu/p/11166708.html](https://www.cnblogs.com/anzhengyu/p/11166708.html))
27+
21. 查找二叉树最大深度
28+
22. 二叉树遍历
29+
23. 写代码判断IP地址([https://blog.csdn.net/u014259820/article/details/78833196?utm_source=distribute.pc_relevant.none-task](https://blog.csdn.net/u014259820/article/details/78833196?utm_source=distribute.pc_relevant.none-task))
30+
24. 在字符串中找出不重复字符的个数
31+
25. 找出两个只出现一次的数字,其余的数字都出现了两次
32+
26. 给n元钱,m个人,写个随机分钱的函数
33+
27. 两个栈实现一个队列
34+
28. 给个数组求连续子序列最大和
35+
29. 写一个程序;给一个数组,a【2 -2 3 3 6 -9 7】输出a【2 -2 3 -9 3 6 7】输入正负数都有数组,输出数组正负交替出现,多的那一类都放在后面;
36+
30. 给定一个数组 输出和为k的两个数的位置 a【2 7 3 5 11】k=9 输出 0 1 [https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-2/](https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-2/)
37+
31. 算法题:实现两个String字符串寻找最大公共子字符串
38+
32. 让写一个洗牌的函数,写完问我为啥那样写、再写一个打印牌的函数,问我洗完牌之后345不连在一起的概率 如何模拟一副扑克牌的洗牌过程
39+
33. 查找字符串中重复的子串,并输出重复的次数 [https://blog.csdn.net/zouheliang/article/details/80649584](https://blog.csdn.net/zouheliang/article/details/80649584)
40+
34. 判断是否为平衡二叉树
41+
35. 找出一个字符串的最长不重复子串([https://www.cnblogs.com/linghu-java/p/9037262.html](https://www.cnblogs.com/linghu-java/p/9037262.html))
42+
143
# 阿里
244

345
#### 链表

docs/dataStructures-algorithms/算法题目难点题目总结.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,51 @@
1+
2+
3+
4+
#### 智力题
5+
6+
作者:office多多
7+
链接:[https://www.nowcoder.com/discuss/374134?type=0&order=0&pos=67&page=1](https://www.nowcoder.com/discuss/374134?type=0&order=0&pos=67&page=1)
8+
9+
1. 10个堆,每堆10个苹果,其中9个堆里苹果是50g/个,一个堆里苹果是40g/个,有一杆秤只能称一次,所称重量为x,求40g苹果所在堆。
10+
11+
* 将堆编码为1-10;然后每堆拿出k个,最后少了k*10克,则知道是第几堆的苹果。
12+
2. 5L和6L水桶,得到三升水。
13+
14+
* 1、6L的水桶装满水,倒满5L的桶。 2、将5L桶里的水倒了,将6L桶里剩余的1L放入5L桶。 3、6L的桶装满水,倒满5L桶里,6L桶里还剩2L(6-4)水。 4、 将5L桶里的水倒了,将6L桶里剩余的2L水放入5L桶里。 5、将6L桶装满水,倒满5L的桶,这时6L的桶里还剩3L水。
15+
3. 两个一小时蚊香怎么得到15分钟的记时
16+
17+
* 同时点燃AB两只蚊香,其中A蚊香点燃两头,等A蚊香烧完后(30分钟),点燃B蚊香的另一头。
18+
4. 4分钟沙漏和7分钟沙漏怎么漏出9分钟
19+
20+
* 4分钟的和7分钟的同时开始,4分钟的完后又倒过来开始。7分钟的沙漏完后立马倒过来,(4分钟的沙漏还剩1分钟)。等4分钟的沙漏完后,将7分钟的又立马倒过来,等漏完就是9分钟。
21+
5. 八个球,其中有一个是其余球重量的1.5倍,有什么方案找出来
22+
23+
* 3次。 AB两边,一边放4个,如果A重,则把B端的去了,A端的4个分成AB端一边两个。在把轻的那端去了,重的那端的2个分成一边一个,重的那个球就找出来了。
24+
6. 桌上100个球,每次可以拿一到五个, 现在我们两个人依次拿球,你先拿,使用怎样的拿球策略,可以使你最终能拿到最后一个球?
25+
26+
* 第一次拿四个,后来每个你拿球的时候只要保证剩下的球是6的倍数就行了如果他拿n个球 ,你就拿6-n个球。
27+
7. 有10个石头,每人每次可以拿1-2个,轮流拿,最后一个拿的人算输,有什么必赢的方案。
28+
29+
* 对方先拿、保证两个人每一轮回拿满3个(对方拿一个,我拿两个、对方拿两个,我拿一个)。
30+
8. 一亿数据获取前1000个最大值 [https://zhuanlan.zhihu.com/p/73233544](https://zhuanlan.zhihu.com/p/73233544)
31+
32+
* 把一亿个数字的前100个 首先放入数组。 然后把最小值放在ary[0]。然后再循环100到一亿之间的。 每次循环判断当前数字是否大于ary[0]当大于时,当前数字放入ary[0] 并再次重构数组最小值进入ary[0]以此类推 。当循环完这一亿个数字后。 最大的前100个数字就出来了。
33+
9. [经典智力题:飞机加油问题](https://blog.csdn.net/qins_superlover/article/details/21158269)
34+
35+
36+
### 左神总结
37+
38+
- [左神直通BAT算法笔记(基础篇)-上](https://juejin.im/post/5c6b9c696fb9a049ed316ef9)
39+
- [左神直通BAT算法笔记(基础篇)-下](https://juejin.im/post/5c6b9d0a6fb9a04a05403cbc)
40+
- [左神直通BAT算法(进阶篇)-上](https://juejin.im/post/5c6b9d4c6fb9a04a05403cbe)
41+
- [左神直通BAT算法(进阶篇)-下](https://juejin.im/post/5c6b9ea76fb9a04a05403cc1)
42+
- [剑指offer解析-上(Java实现)](https://juejin.im/post/5c6b9a976fb9a049d2369f2f)
43+
- [剑指offer解析-下(Java实现)](https://juejin.im/post/5c6b9bad518825266c3f064f)
44+
45+
### 红黑树
46+
47+
- [原来手写红黑树可以这么简单](https://juejin.im/post/5de72ae66fb9a016214cae91)
48+
149
### 链表
250

351
#### 1 将单向链表按某值划分成左边小、中间相等、右边大的形式(p59)

docs/interview-experience/面试常见问题分类汇总.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Java基础
22

3+
#### hashmap的jdk1.7和jdk1.8区别
4+
5+
- https://juejin.im/post/5aa5d8d26fb9a028d2079264
6+
7+
- https://blog.csdn.net/qq_36520235/article/details/82417949
8+
9+
#### concurrenthashmap的jdk1.7和jdk1.8区别
10+
11+
- [面试题](https://juejin.im/post/5df8d7346fb9a015ff64eaf9)
12+
13+
314
#### Java I/O 底层细节,注意是底层细节,而不是怎么用
415

516
可以从Java IO底层、JavaIO模型(阻塞、异步等)

docs/interview/已投公司情况.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
|公司|官网链接|牛客链接|投递情况|
2+
|-----|-----|-----|-----|
3+
|美团| https://campus.meituan.com/resume-edit | | 已投 |
4+
|快手| | 来自内推军 | 已投 |
5+
|蘑菇街|http://job.mogujie.com/#/candidate/perfectInfo | | 已投 |
6+
|远景|https://campus.envisioncn.com/ | | 已投 |
7+
|阿里钉钉| |https://www.nowcoder.com/discuss/368915?type=0&order=0&pos=25&page=3| |
8+
|阿里新零售| |https://www.nowcoder.com/discuss/374171?type=0&order=0&pos=35&page=1| |
9+
|深信服| |https://www.nowcoder.com/discuss/369399?type=0&order=0&pos=40&page=6| |
10+
|CVTE| |https://www.nowcoder.com/discuss/368463?type=0&order=0&pos=87&page=3| 已投 |
11+
|奇安信| |https://www.nowcoder.com/discuss/365961?type=0&order=0&pos=102&page=6| 已投 |
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
### 自我介绍
2+
3+
面试官,您好,我叫欧阳思海,我是中国地质大学(武汉)21届应届毕业生,在校的专业是计算机技术。
4+
5+
研究生加入实验室后,在研一这一年中,做了一个外委公司电厂项目,然后在去年的5月份到9月份,去了中国空间技术研究院钱学森实验室实习了几个月,由于那里做的项目不是Java的,所以在简历中没有体现。
6+
7+
从大学开始学习计算机专业之后,对技术挺有热情的,喜欢记录自己学过的技术,分享技术,在CSDN博客平台,通过这几年的时间,陆陆续续写了400多篇博客了,同时也获得了CSDN博客专家的称号,博客访问量有150W了。
8+
9+
最后,我通过这几年的学习,对于计算机的基础知识掌握的还可以,对于计算机网络,Java相关的技术,数据库等方面有深入学习,我也特别想去贵公司,自己也特别适合这个岗位,谢谢您给我这个机会!
10+
11+
### 项目一介绍
12+
13+
这个项目项目基于SSM框架开发,采用前后端分离,主要为电厂开发一套人员管理及人事审批的OA系统,实现电厂人员管理、电源审批、栈道审批、工器具审批等功能。
14+
15+
在项目中除了用到了ssm技术之外,还有activiti工作流框架,数据库使用的是mysql,缓存框架使用的是redis,权限控制框架使用的是shiro。
16+
17+
在这个项目中我担任的角色是项目负责人,负责整个项目的管理工作,同时,我还负责了以下几块工作:
18+
1、搭建项目环境
19+
2、实现用户的单点登录系统SSO
20+
3、项目的权限控制
21+
4、开发电源管理和栈道管理模块
22+
5、系统性能调优
23+
24+
25+
### 项目二介绍
26+
27+
项目基于SSM框架开发的综合性电商网站,实现会员商城浏览下单、商家入驻商城出售商品、管理员后台管理商品、订单、搜索及会员等功能,同时,系统可以发起抢购活动功能。
28+
29+
在项目中用到的技术主要包括ssm框架,数据库用的是mysql,缓存用的是redis,消息队列用的是rocketMQ,微服务分布式项目用到了dubbo框架,对于处理分布式的一些问题,用到了zookeeper框架。
30+
31+
在这个项目中我主要责任是
32+
1、搭建dubbo的分布式的项目(怎么分层)
33+
2、利用redis提供缓存服务
34+
3、利用RocketMQ消息队列做消息处理
35+
4、对数据库性能进行调优
36+
5、开发抢购活动功能模块(业务需求)

docs/project/秒杀项目总结.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,33 @@ Redis缓存服务
205205

206206
- [MySQL高频面试题](https://mp.weixin.qq.com/s/KFCkvfF84l6Eu43CH_TmXA)
207207
- [MySQL查询优化过程](https://mp.weixin.qq.com/s/jtuLb8uAIHJNvNpwcIZfpA)
208+
209+
>生成数据工具:mockaroo
210+
211+
1、如果有子查询,改为连接语句
212+
2、在where条件建立索引:user的id
213+
3、如果有连接关键词,也建立索引:user的id
214+
4、如果有分组或者排序,建立索引:order by time
215+
5、同时也可以建立联合索引
216+
217+
**需求1**
218+
某个部门查看审核人员的所有审批信息:先查询某个部门所有的审核人员,根据审批建议、审批时间及审批人查询审批信息(审批数据70w)
219+
```
220+
select u.* , c.* from user u inner join checklog c
221+
on c.uid == u.id
222+
where u.deptmentId = 1
223+
and time > {1} and time < {2}
224+
and desc like ' %'
225+
```
226+
227+
①子查询:先查询部门的用户id然后再查询相关的审批信息
228+
②没有加索引:70w数据查询用了3w s。
229+
③给user的id建立索引,时间减少到了1.003s
230+
④然后考虑到子查询,所以,改成连接操作,时间变为0.057s
231+
⑤再给连接字段建立索引,时间变为0.001s
232+
⑥模拟数据增加到300w时间增加到了0.016s,在部门id和用户id建立联合索引,时间降到了0.005s。
233+
⑦用时间进行排序,建立时间索引。
234+
208235
- [MVCC原理](https://liuzhengyang.github.io/2017/04/18/innodb-mvcc/)
209236
- [MySQL锁](https://blog.ouyangsihai.cn/mysql-de-you-yi-shen-qi-suo.html)
210237

0 commit comments

Comments
 (0)