Tag - green

green    2023-04-12 14:59:24    156    0    0

面试官很友好,自己太菜了。意识到了自己对计算机的认知有多么浅薄 orz

一共75分钟,讲的口干舌燥

不知道哪些是答得不对或者不全的地方,也请懂的同学不要藏着掖着,可以在讨论区聊聊呀~

一个小厂面试难度竟然已经如此可怕了

感觉分布式已经是后端的必要技术栈了。卷成这样也是离谱。也许该好好考虑考虑 #互联网没坑了,还能去哪里# 这个话题了。

等我毕业了,银行等国企的坑也该填满了,感觉自己每多上一天学,就业就恶化一天。鉴定为:寄

回想起20年字节的实习门槛,回想起那时某些双非本科一个班能秋招4个进字节。努力在时代面前不值一提~

项目

HTTP/TCP的相关知识:三次握手,Long connection的含义、半连接的作用
socket操作,socket操作与三次握手之间的对应关系。

Session、Cookie、Token

Mysql为什么选择B+树(开始吟唱),答了支持范围查询(不能用哈希)+减少IO次数(B树、二叉树、红黑树、跳表都有更多次IO的问题)

Mysql有哪些优化措施:“先说这是一个很大的话题”,答了建立恰当的索引(以及避免索引失效)、低NF以空间换时间、改用适合业务场景的其他执行引擎(MyIASM, RocksDB)、分库分表(水平垂直分库分表)、建立主从集群(讲了一主多从、主从分离)。

操作系统:Page Cache的作用,操作系统进程的状态(答得不好,状态的名称记不太清了)、操作系统的进程调度算法(没看过,看过也忘了,寄)。

用过哪些命令。

磁盘IO有哪些优化?只想到了减少访存次数+顺序读写,面试官说之前提到的Cache也可以(傻了,竟然没想到),讲讲磁盘的Cache(说了mmap这种direct IO和缓冲IO,感觉说的不太好,可能没扣题)。

内存满了之后怎么办?答了通过页面淘汰算法淘汰页面,比如FIFO, LRU, LFU。

Go:协程切换VS线程切换,讲讲协程切换的细节(说了恢复上下文,包括保存的寄存器信息和pc指针,懂的同学可以讲讲)

容器:讲了讲docker的大体实现,docker是做什么的。

知道K8S这种容器编排吗?是做什么的?不会K8S,直接寄,听面试官大概讲了讲K8S用于万规模以

green    2022-03-09 17:37:28    61    0    0

https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/

之前做过,直接看代码复习了以下,是一些实现delete head的小trick罢了,应该能想到。

green    2022-03-08 21:26:35    103    0    0

https://leetcode-cn.com/problems/valid-parentheses/

难度:简单

简单使用栈进行括号匹配即可。

green    2022-03-08 20:40:47    59    0    0

https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/

相当于复习了链表的删除。基本功还在,但是一些细节出了点小问题。

我觉得总结一点是:一定要在

  1. while(xxx && xxx)
  2. {
  3. dosomething();
  4. }

的时候,一定要认真想想,到底是不符合while中的哪个条件跳出了,这两个不同的跳出条件往往对应着不同的后续处理思维。

green    2022-03-08 20:17:25    55    0    0

https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/

这题非常简单,进行一个基本的深搜即可,无难度。

green    2022-03-06 14:59:52    80    0    0

https://leetcode-cn.com/problems/reverse-integer/

整数翻转本身没什么难度。难点在于如何在不使用long long的情况下,预判这个数字是否已经overflow。我使用的做法是预先让其和标准数组{2147483647}进行逐位的比较。

其实还有另一种思路,在

  1. for(int i=0;i<numbers.size();i++)
  2. {
  3. number*=10;
  4. number+=minus*numbers[i];
  5. }

的过程中,在number*10+res之前,对number进行特判。如果number已经大于了214748364,或者等于214748364并且余数大于7,那么这个操作就会导致overflow,拒绝后返回0即可。

green    2022-03-06 14:59:52    62    0    0

https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/

dp,dp[i]表示以i为结尾的最长的符合条件的字符串的长度。dp[i+1]只需要向前查找,看看dp[i+1]对应出的字符串是否在其dp[i]构成的字符串之间即可。如果在之间,从出现位置处截断。

答案的解法中,其实是把这种思想从前往后推了,叫做“滑动窗口”思想。简单来说,dp[i]研究的是以i开头的最长符合条件的字符串的长度。对于dp[i+1],由于dp[i]没有了,因此最后的长度可能向后推一定的距离(只需要保证新加入的字符不会和已有的字符冲突即可)

green    2022-03-06 14:59:52    57    0    0

https://leetcode-cn.com/problems/add-two-numbers/

基本链表操作复习
高精度加法弱化版