面试复习指南
春招&秋招复习,加油,Fight for offer!
心的步伐
wx公众号: AaronCoding 欢迎关注呀,用技术让生活变得更加美好!
如果自己失去了斗志,就来这看看,看到自己在那个时候的自己是什么模样,然后对比现在,笑一笑,深呼吸一下,再继续向前,不行就去奔跑一番再回来,会发现自己是一个奋战到死的勇士!
风里雨里,我会等你,虽然你在遥远的地方,我始终相信距离永远不是阻隔我俩的最大敌人!时间是我们跨越山河的动力,加油!
展开
-
[leetcode-530]二叉搜索树的最小绝对差
1. 题目给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。示例:输入:[1,null,3,2]输出:1解释:最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。提示:树中至少有 2 个节点。本题与 783 https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/ 相同来源:力扣(LeetCode)链接:https://leetcode-cn.c原创 2020-10-12 09:27:12 · 189 阅读 · 0 评论 -
Leetcode刷题字符串长度和数组逼近问题
1. 前言昨天和今天在做题的时候发现了自己身上的一个大问题,数组的逼近都不会,其实数组的逼近可以由当前的一个数是否等于target来决定向哪一边逼近,具体的在下面会说到。发现的另一个大问题就是字符串的长度问题,这个是在做回文子串的相关问题时发现的,这个问题就是往两边走,长度的取舍问题以及当前子串的开始下标和结束下标的位置。为了下次规避这两个问题,所以将这两个提取出来记录一下!2. 数组的逼近首先我们来看看普通的二分查找是怎么实现的,由下面代码可以很清晰的看到当前的代码的一个具体的流程:首先获取原创 2020-09-11 22:13:22 · 284 阅读 · 0 评论 -
Leetcode-56 合并区间
1. 前言今天问朋友华为二面问的啥,他告诉我算法题问了合并区间,后面去看了一下发现这个是Leetcode56题,自己之前没做过。于是就有了这一题。2. 题意给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: intervals = [[1,4],[4,5]]原创 2020-09-10 19:39:53 · 316 阅读 · 0 评论 -
2020-09-06腾讯笔试
前言上次没有参加,以为可以避免参加,这次是回学校以后参加的,果然自己蠢得不行,写题目都没有思路,于是被自己的智商吊打,不过事情已经过了,只能抱着每一次挫折都是前进的冲锋号来鼓励自己了,然后参照他人的题解,将题目做一个复盘吧!1. 降序链表公共部分题目:降序排列的链表,求出当前链表的公共部分66 5 4 3 2 156 5 3 2 1题目很清晰了,只是用链表来混淆视听实质就是求两个的公共数字。public class Main { public static void main原创 2020-09-07 10:34:39 · 326 阅读 · 0 评论 -
[面试题]最长连续子序列
1. 题目题目:leetcode 128 最长连续子序列但是有所不同的是,这里求得不仅仅是长度,同时需要将整个子序列给复原出来,最后返回一个子序列的数组。100, 4, 200, 1, 3, 2 => [1,2,3,4]2. 分析第一种方法是利用Map的方法,这种方法的话时间复杂度是O(n),因为不需要排序,排序的时间复杂度是O(nlogn),所以时间复杂度上面更加有优势。第二种方法是利用排序之后,利用动态规划来解决这个问题,因为后面可能与前面连续,也可能不连续,此时只需要通过值的原创 2020-09-02 11:04:28 · 4798 阅读 · 0 评论 -
[面试题]求先递增再递减的最大值
题目题目主要是:leetcode 162 寻找峰值给出一个数组,可能是先递增再递减,也可能一直递增,或者一直递减,求最大值分析分析的话,主要是首先如果递增和递减的话其实都是找一个峰值,实质上都是找一个最大值,然后这个递增和递减程度都是依据我们的中点来确定的,只要通过中点值与后面值的大小判断就可以知道当前中点出发生的一个趋势变化。如果当前值大于后面的值,则表明此处可能就是峰值了,在前面,但不会再后面!由此可以得到,只需要通过中点与中点后一个值的情况即可判断当前的值的变化趋势,从而获取到最大值原创 2020-09-02 10:20:21 · 3035 阅读 · 0 评论 -
生产者/消费者模型的实现
文章目录一、生产者消费者模型实现1. wait/notify/notifyAll实现2. await/signal/signalAll3. 利用BlockingQueue来实现4. 总结一、生产者消费者模型实现1. wait/notify/notifyAll实现注意线程中的判断使用while判断,不用if判断!public class ConsumerAndProductor { ...原创 2020-02-13 14:30:36 · 210 阅读 · 1 评论 -
ReentrantLock源码
文章目录1. ReentrantLock2. 公平锁与非公平锁3. 非公平锁源码4. 公平锁源码6. 总结1. ReentrantLockReentrantLock是一种可重入锁,与synchronized一样,但是ReenTrantLock是基于APi方式实现的,而synchronized是基于jvm底层实现的。且对于ReentrantLock支持可中断操作,但是只是在获取锁的时候支持loc...原创 2020-01-05 17:26:57 · 210 阅读 · 0 评论 -
ThreadLocal的remove()方法源码分析
1. ThreadLocalThreadLocal通俗理解就是线程的私有变量,用于保证当前线程对其修改和读取,如果本线程没有调用set方法设置值的话或者其他线程如果读取的话或者此变量被remove,都会返回null值。 protected T initialValue() { return null; }2. remove方法remove方法主要是为了防止内存溢出...原创 2019-12-31 21:18:00 · 4558 阅读 · 0 评论 -
ArrayList源码学习
文章目录1.1 ArrayList简介1.1.1 ArrayList的结构1.1.2 ArrayList的继承结构1.2 类中的属性1.3 类中的构造方法1.4 核心方法1.5 删除方法1.6 Set()方法1.7 indexOf()方法1.8 get()方法1.9 总结1.1 ArrayList简介ArrayList是可以动态增长和缩减的索引序列,是基于数组实现的List类该类封装了一个...原创 2019-06-20 17:28:02 · 158 阅读 · 0 评论 -
《图解HTTP》读书笔记
1. 了解Web以及网络基础使用HTTP协议访问网页:根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源(resource)等信息,从而显示在Web页面。向这种通过发送给请求获取服务器资源的Web浏览器等,都可被称为客户端(client)web使用一种HTTP的协议(hypertext transfer protocol,超文本传输协议)作为规范,完成从客户端到...原创 2019-11-27 20:37:51 · 1386 阅读 · 0 评论 -
ConcurrentHashMap源码
文章目录ConcurrentHashMap源码1. JDK1.7版本1. 基本结构2. size操作3. put操作3. rehash操作4. get操作5. remove操作2. JDK1.8版本1. 基本结构2. put操作3. treeifyBin操作4. transfer操作5. get操作3. ConcurrentHashMap1.7与1.8的区别4. 总结ConcurrentHash...原创 2020-02-13 09:09:51 · 317 阅读 · 1 评论 -
类加载机制
文章目录1. 类加载的时机1.1 何时开始加载?2. 类加载2.1 加载2.2 验证2.3 准备2.4 解析3. 初始化4. 类加载器4.1 类与类加载器4.2 双亲委派模型4.3 破坏双亲委派模型5. 小结1. 类加载的时机类从被虚拟机加载到内存中,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Reso...原创 2020-01-16 20:08:51 · 159 阅读 · 0 评论 -
计算机网络复习
文章目录1. 小案例2. OSI与TCP/IP协议体系3. 数据链路层4. 网络层5. 传输层6. 应用层7. HTTP的格式8. 小结1. 小案例点击一个URL或者从浏览器的输入框输入一个URL,发生的事件(有时候也会问经过哪些协议处理):浏览器分析链接指向页面的URL浏览器向DNS请求解析www.xxx.com的IP地址域名系统DNS解析出这个网址的IP地址为100.100.100...原创 2020-01-06 20:28:46 · 1325 阅读 · 0 评论