- 括号匹配(lc:22):1
- 对角线遍历(lc:498)
- 累加数(lc:306)
- 二叉树中序遍历的后继节点
- 判断—棵二叉树是否是对称的
- 有若干[30,50,100]优惠券,求给定一个数值求最优的方案。例如∶价格是40=>[30]80 =>[30,50].110=>[30,30,50]
- 搜索旋转数组
- 带精度的sqrt
- 矩阵中的最长递增路(lc:329)
- 删除单向链表中重复的数字
- 给一个以字符串表示的非负整数num,移除这个数中的k为数字,使得剩下的数字最小(单调栈)
- 给定一个二叉搜索树,并给出他的前序序列,输出中序序列,时间复杂度O(n),并给出证明
- 非递归中序遍历
- 非递归后序遍历
- 单链表代表一个大整数,给它低位加上一个数,返回加上后的链表
- 链表压缩,a->a->a->d->d->b->z->z->null,转换为3a->2d->1b->2z->null (写了一个生成新的链表,又要求重写,在原链表上修改)
- 给一棵树,当一个节点的左节点下的两个节点都是1,或者是右节点下的两个节点都是1时,这个节点满足条件。返回所有满足查找条件的节点
- 求树的直径
- 判断一棵树是否为二叉平衡树
- 大数相乘
- 两个降序链表的第k大元素
- 二叉树的深度
- 两个字符串的最长公共子串
- 给一个队列,借助两个栈,将队列中的元素排序
- 字符串排序 首先按照长度排序,然后按照字符串排序。I am a an student.------->I a am an student
- 两个字符串是否由相同字符构成
- N皇后
- 升序链表转成二叉平衡搜索树
- 给定一个字符矩阵,里边只有O和X,把所有被X包裹的O变为X
- 一个单向链表,根据value的奇偶性拆成2个链表,并且返回的两个链表是升序的
- 数组求每一个数的下一个比它大的数字(先写了O(n2),写完想起来了O(n)的栈)
- 给一个数,求出树中祖先节点和其后代节点差值的最大值(思路对了,手撕没过)
- 整数数组拼接成最小数
- 顺时针递增打印数组
- 最长回文串
- 最大正方形面积
- 合并k个有序链表
- 区间列表的交集(lc:986)
- 判断两个字符串是否是相似字符串,相似的含义是只允许交换一次字符串的两个位置,使得和第二个字符串相等,那么他们就是相似的。
ab, ba => true
abax, abax => true
abc, abc => false
aac, abc => false
1 字符串长度是否相等
2 排序后字符串是否相等
3 双指针判断相同位置不同字符的对数是否等于2
4 不同字符为0时时,是否有重复字符
- 删除倒数第K个节点
- Z字打印二叉树
- 非严格递增数组1,2,3,3,3,4,5,找到目标数字所在的第一个位置,无则输出-1,如3,输出2,要求O(log n);(变种二分)
- 从l到r反转链表
- 最小路径和
- 输入两个数组,从两个数组中各取一个值,输出两个值的和为0的所有组合并需要去重。
输入: nums1={1 ,-1,0,0},nums2={-1,-1,0,1} ,输出:{{1,-1},{0,0}}
- topK
- 求一个长度为n的无序数组中,第m大的数 topk?
- 找二叉查找树的两个节点相差的最小值(非递归中序+对比相邻节点的差)
- 二叉树剪枝
- 二叉树指定层的节点个数
- 双向链表奇偶位置节点拆分
- 反转链表,迭代+递归
- 字符串相加
- 整数拆分
- 给一个字符串数组,把由相同字母组成的字符串分入同组
- 同样给了一个整型数组 [100,2,1,4,3,3,101,200] 从这个数组找到连续元素的长度,比如1,2,3,4 最长输出4。
- 分割数组(lc:915)
- LeetCode求两个链表和,从头到尾相加即可
- 一个链表,给定一个目标值,比目标值大的节点去到链表后面,要求不改变相对顺序 比如1 3 2 1 3 2 1 给定目标值2,返回链表1 2 1 2 1 3 33.
- 最长公共子序列
- 判断二叉树是不是BST
- 求一个数的平方根,精确到0.01。
- 重排链表(lc:143)
- 利用循环链表写一个队列
- 介绍一下垃圾收集器
- g1和cms有什么区别
- 为什么g1可以在保证用户吞吐量的情况下进行垃圾收集
- Java中实现加锁的方式
- sychronized及锁升级过程
- 底层AQS实现原理
- ConcurrentHashMap
- 线程状态
- 线程池
- 深拷贝,浅拷贝
- 说说线程安全
- Lock和Synchronized的区别
- 逃逸分析
- JVM内存区域,这些区域会内存溢出吗,栈什么情况下会溢出,堆呢
- 堆区的垃圾回收机制,为什要用分代策略?
- 为什么老年代不采用复制算法?
- SpringBoot自动装配的原理
- Spring中Aop是如何实现的?
- Cglib和JDK的动态代理有什么区别?
- Spring是怎么实现Ioc的?
- Java的反射机制了解吗?
- 反射机制中获得实例的方式有几种?分别是什么?
- getClass和forName得到的Class实例是同一个实例还是不同的实例?
- 讲一下ClassLoader?
- String,StringBuilder,StringBuffer
- HashMap
- mysql建立索引的原则
- 聚簇索引和非聚簇索引区别
- B+树结构、为什么不用B树或二叉树
- 事务四大特性
- 事务隔离级别
- 用mysql实现一个分布式锁
- MVCC具体原理
- http讲一下
- get和post的区别
- get是否可以有请求体
- 手写http request报文和 http response报文
- 四次挥手过程
- close_wait作用
- TCP有什么特点?
- TCP具体的可靠性指什么?怎么确保数据的正确性?
- 流量控制和阻塞控制的区别是什么?
- Socket跟其他的方式有什么不一样?
- OSI七层网络模型
- 网络层有哪些协议?
- ICMP解释一下,有什么作用?除了判断是否能正常通信还有什么作用?
- 如果有几百万消息堆积,如何处理
- 如何保证消息消费的可靠性,顺序性
- 消息队列方式有什么优缺点?
- 消息队列为什么比共享内存慢?(需要额外的复制)
- 共享内存有什么缺点?它怎么保证同步操作?