[TOC]
## 思路
* 辅助栈
* 双指针
* hashmap
## 数组
* 最大连续子序列和
[https://www.cnblogs.com/coderJiebao/p/Algorithmofnotes27.html](https://www.cnblogs.com/coderJiebao/p/Algorithmofnotes27.html)
~~~
public int maxSubSum(int[] array) {
if (array == null || array.length == 0) {
return Integer.MIN_VALUE;
}
int currSum = Integer.MIN_VALUE;
int maxSum = Integer.MIN_VALUE;
for (int i = 0; i < array.length; i++) {
currSum = (currSum < 0) ? array[i] : currSum + array[i];
if (currSum > maxSum) maxSum = currSum;
}
return maxSum;
}
~~~
## 链表
* 单链表反转
* 环形链表
[https://blog.csdn.net/qq\_33297776/article/details/81034628](https://blog.csdn.net/qq_33297776/article/details/81034628)
* 复制带随机指针的链表
[https://blog.csdn.net/u014450222/article/details/83002321](https://blog.csdn.net/u014450222/article/details/83002321)
## 二叉树
* 二叉树的广度优先遍历和深度优先遍历
[https://blog.csdn.net/weixin\_39912556/article/details/82852749](https://blog.csdn.net/weixin_39912556/article/details/82852749)
* 二叉树序列化与反序列化
[https://blog.csdn.net/jiangjiang\_jian/article/details/81948131](https://blog.csdn.net/jiangjiang_jian/article/details/81948131)
## 参考资料
[互联网公司最常见的面试算法题有哪些?](https://www.zhihu.com/question/24964987/answer/586425979?hb_wx_block=0&utm_source=wechat_session&utm_medium=social&utm_oi=648852472060317696)
- Java
- Object
- 内部类
- 异常
- 注解
- 反射
- 静态代理与动态代理
- 泛型
- 继承
- JVM
- ClassLoader
- String
- 数据结构
- Java集合类
- ArrayList
- LinkedList
- HashSet
- TreeSet
- HashMap
- TreeMap
- HashTable
- 并发集合类
- Collections
- CopyOnWriteArrayList
- ConcurrentHashMap
- Android集合类
- SparseArray
- ArrayMap
- 算法
- 排序
- 常用算法
- LeetCode
- 二叉树遍历
- 剑指
- 数据结构、算法和数据操作
- 高质量的代码
- 解决问题的思路
- 优化时间和空间效率
- 面试中的各项能力
- 算法心得
- 并发
- Thread
- 锁
- java内存模型
- CAS
- 原子类Atomic
- volatile
- synchronized
- Object.wait-notify
- Lock
- Lock之AQS
- Lock子类
- 锁小结
- 堵塞队列
- 生产者消费者模型
- 线程池