为什么
编程的内功修炼
国内一线互联网公司的必要条件
硅谷互联网公司面试要求当场写算法题目
电话面试:collabedit.com
coderpad.io
白板面试:思路为主
有趣且实用
内容
图一
图二
怎么做
《Outliers》异类-不一样的成功启示录
1、Chunk it up
庖丁解牛:
图1
脉络链接
图2
2、Deliberate practicing
坚持、刻意练习
练习缺陷、不舒服、弱点的地方
不爽、枯燥
3、Feedback
即时反馈
主动型(自己找)
-高手代码(Github,Leetcode论坛)
-第一视角直播
被动型(高手指点)
-code review
-教练看你打,给你反馈
切题四件套
Clarification
Possible solutions
-compare(time/space)
-optimal(加强)
Coding (多写)
Test cases(测试案例)
复杂度 Big O notation
O(1):常数
O(long n):对数
O(n):线性时间
O(n^2)
O(n^3)
O(2^n):Fibonacci array的普通运算
O(n!)
图三
ps:只看最高复杂度的运算
主定律用于解决算法:
图四
知识点解析
三分学习,七分练
注重练习弱项
LeetCode:
题目 + 分类(Topics) + 公司归档
做题
时间复杂度
Editor
Solution from LeetCode
Discussion Panel in LeetCode
Array数组:
图
Access:O(1)
Insert:平均O(n)
Delete:平均O(n)
Linked List 链表:
改善数组的插入删除操作
元素个数未知
图
查询:O(n)
插入:O(1)
图
删除:O(1)
图
Doubly Linked List
图