-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
- 一个合理的思考途径
- 一起探讨一个问题的解决方案
- 沟通本身很重要,沟通问题的细节和应用环境,假设,慢慢升入
- 对一组数据进行排序
-
正确不仅仅是编码能运行,还包含对问题的独到见解;优化;代码规范;容错性;
-
项目经历,项目中遇到的实际问题
(小程序百万并发)
(退费金额计算,账单匹配)
-
遇到印象最深刻的 bug 是什么
-
准备一些问题
(小组的工作模式,运行模式是什么样的)
(某个产品中的某个问题是如何解决的)
(这个产品为什么会选择这个技术,这个标准来实现)
(整个项目的后续规划是什么)
- 抓基础的算法和数据结构
(各种排序)
(基础数据结构和算法的实现:如堆,二叉树,图)
(基础数据结构的使用:如链表,栈,队列,哈希表,图,Trie,并查集)
(基础算法:深度优先,广度优先,二分查找,递归)
(基本算法思想:递归,分治,回溯搜索,贪心,动态规划)
- 是否有序,题目条件本身是暗示,
(设计一个onlogn的...)
(无需考虑额外的空间)
(数据规模)
-
没有思路时,用最简单的测试用例,试验一下,不要忽视暴力解法,暴力通常是思考的起点
-
优化算法的思路
(遍历常见的算法思路:多指针,贪心,分治,递归...)
(遍历常见的数据结构:栈,链表...)
(空间和时间的交换:典型的如哈希表)
(对数据进行预处理:比如先排序)
(在复杂度的瓶颈处寻找答案)
- 编码需要注意的问题
(极端条件的判断:数组空,字符串空,数量0,指针null)
(变量名)
(模块化,复用性)
-
对于基本问题需要做到白板编程(比如堆)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
