大厂常见算法面试题
这部分内容是算法问题合集,题目大多来自网络和书籍。我做了下简单的整理,很多题做了一些思路标记。
前言
面试中如何更好的写算法题
1.ide 工具 & 文本框 ;文本框环境写算法是通常没有智能提示,有些基础数据结构可能要自己定义
2.语言基础语法:各常用集合的api,要能够默写
3.题目:熟悉各种题目,避免在题目理解上花太多时间跟面试官拉齐
4.编程思路和框架:拿到题目以后能快速套思路和代码框架
5.编程细节:多练习,总结
一、常用解题套路工具
数组,字符串问题:二分查找、 快慢指针、 左右指针、 滑动窗口、 前缀和数组、 差分数组。
二叉树问题:递归
动态规划问题
常见算法题目Java实现
二、刷题框架套路
1.遍历
代码如下:
# 数组遍历框架
void traverse(int[] arr) {
for (int i = 0; i < arr.length; i++) {
// 迭代访问 arr[i]
}
}
# 链表遍历框架
void traverse(ListNode head) {
ListNode p = head;
while(p.next != null)
...
p = p.next
}
2.递归
代码如下:
# 链表递归
void traverse(ListNode head) {
// 递归访问 head.val
traverse(head.next);
}
#