学习路线
几个方面
算法面试
操作系统与同步概念
系统设计
ODD设计
某些手撕题
杨辉三角求数字位置,118,119题相关
循环有序数组的查找,33题相关
求二叉树的最近公共祖先,236题相关
求阶乘后的0,172题相关
实现一个增删改查功能的LinkedList,707题相关
矩阵置零
二叉树的层序遍历
中文转数字,数字转中文
链表的两数相加,2题相关
反转链表,206题相关
合并两有序链表,21题相关
括号匹配,20题相关
队列实现栈,栈实现队列,225,232题相关
判断IP地址是否在集合内,字符串匹配
中缀表达式的计算,224题相关
划分字母区间,763题相关
leetcode腾讯精选50道
学习计划
第一周
学习语言基础
怎么读写文件
怎么从控制台读取输入
怎么分割字符串
怎么分配二维数组和使用
第二,三周
学习数据结构和算法
复杂度分析
数组
栈
队列
链表
树
图(深搜和宽搜)
哈希表
堆
排序
查找
第四,五周
学习简单的数据结构和算法
数组常见:
怎么从数组删除偶数
怎么合并两个排序好数组
求数组中第一个不重复数字
找到数组中第二大数字
链表常见
链表长度
怎么在链表中查找
怎么翻转链表
怎么找链表最中间值
队列和栈常见
栈中元素排序
构造一个栈,能在O(1)时间找到最小值
如何用数组实现栈和队列
树的常见
二叉搜索树最小值
二叉树的高度
BST的第K大数
图的常见
实现宽搜
实现深搜
检测图中是否有环
字母树常见
字母树中单词个数
找到字母树中所有单词
堆的常见
一个列表里K个最小的数
找到数组中K个最大的数
第六,七,八周
分析复杂题目:
学会计算答案的时间和空间复杂度,面试时要清晰阐述答案的时空复杂度
题目推荐:
- Implement Binary Search
- Find the Intersection point of two linked lists
- Reverse words in a sentence
- check if two binary trees are identical
- Clone a directed graph
- Find solution to a Boggle game
- Determine if there are any three integers in an array that sum equal to the given value
- 实现二分搜索
- 找到两个链表汇入点
- 翻转一个句子的单词
- 判断两二叉树相同
- 复制两个有向图
- 实现Boggle游戏
- 3Sum
第九,十周
学习系统设计部分,考虑实际问题,诸如:
- 如何解决服务器的负载均衡问题
- 如何共享数据库
- 如何保存大文件
- 如何架构网络,解决冗余和达到最大吞吐量
可以搜索学习的方向:
设计Instagram
设计脸书的Newsfeed
设计Uber
第十一周
了解线程,锁,同步等概念
第十二周
学习ODD方面知识
设计ATM机
设计电梯
设计停车场
JAVA问题集合
本博客所有文章除特别声明外,大部分为学习心得,欢迎与博主联系讨论