Git Product home page Git Product logo

notes's Introduction

Notes

Summary

这个repo是关于面试准备的。

互联网公司面试准备思维导图

面试思维导图

数据结构和算法理论基础

掌握数据结构和算法直接的好处就是能写出性能更优的代码。算法是一种解决问题的思路和方法,从长期来看,大脑思考能力是个人最重要的核心竞争力,而算法是为数不多的能够训练大脑思考能力的途径之一。

🍭 学习路线加强巩固数据结构基础知识,主要通过 leetcode 算法题加深对数据结构的理解。在刷Leetcode之前和同时,看Cracking the Coding Interview (CTCI)和在Hackerrank/GeeksForGeeks上练习一些基础会很有帮助。下面的技巧至少练习三遍到滚瓜烂熟:

  • 从scratch实现一个ArrayList
  • 翻转链表
  • 用Array实现Stack和Queue
  • 用简单的Hashing function实现一个hashmap
  • 用Adjacency Matrix和Adjacency List来实现Graph,然后在此基础上进行BFS和DFS
  • Binary Search的迭代和递归
  • Merge Sort,Quick Sort,Counting Sort
  • 二叉树的DFS(前序,中序,后序的递归写法和迭代写法),BFS(层序)
  • 时间空间复杂度分析

可以明确的是,面试时候的算法题目在难度上(尤其是代码难度上)不会吹毛求疵,会倾向于靠擦一些基础的数据结构和算法,对于高级算法和奇技淫巧一般不作考察。

代码题主要考察编程语言的应用是否熟练,基础是否扎实,比如让面试者写出代码完成简单的需求,大约下面的这些内容打好基础就足够了:

Data Structures

  1. 数组与链表:单/双链表,跳表
  2. 栈与队列
  3. 树与图:最近公共祖先,并查集
  4. 哈希表
  5. 堆:大根/小根堆,可并堆
  6. 字符串:前缀树,后缀树

Algorithms

  1. 排序算法:快排,归并,计数
  2. 搜索算法:回溯,递归,剪枝技巧
  3. 图论:最短路径,最小生成树,网络流
  4. 动态规划:背包问题,最长子序列,计数问题
  5. 基础技巧:分治,倍增,二分,贪心
  贪心     分治     回溯   动态规划   递归    复杂度分析 
️⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ ️⭐⭐⭐ ️⭐⭐⭐ ⭐⭐⭐

Data Structures

  • Dynamic Array
  • Linked List
  • Stack & Queue
  • Hash Tables
  • Binary Search Tree
  • Binary Heaps & Priority Queue
  • Graphs
  • Trie Algorithms
  • Bit Manipulation & Numbers — difference btw Unsigned vs signed numbers
  • Stability in Sorting
  • Mergesort
  • Quicksort
  • Heapsort — Sort it in-place to get O(1) space
  • Binary Search
  • Selections — Kth Smallest Elements (Sort, QuickSelect, Mediums of Mediums) — Implement all three ways
  • Permutations
  • Subsets
  • BFS Graph
  • DFS Graph
  • Dijkstra’s Algorithm (just learn the idea — no need to implement)
  • Tree Traversals — BFS, DFS (in-order, pre-order, post-order): Implement Recursive and Iterative
  • External Sort — No implementation; Just know the concept.
  • NP-Complete (Video) — Just know the concept
  • Topological Sort
  • Detect cycle in an undirected graph
  • Detect a cycle in a directed graph
  • Count connected components in a graph
  • Find strongly connected components in a graph

面试常考算法题

以下列出面试高频出现,以及一些非常经典重要的算法题,点击leetcode的细分类别一定要看,如果想按照类别刷题,可以按照leetcode的分类题目卡片。在线面试工具通常是类似Hackerrank或者codepad或者公司自己的工具。

每道题的时间安排

第一周

 题号   难度  题目链接             答案             简单总结
周一
1 简单 Two Sum Two Sum Hashmap
146 中等 LRU Cache LRU Cache 1. Hashmap + Double Linkedlist
2. LinkedHashMap
2 中等 Add Two Numbers Add Two Numbers 注意carry,这道题的II从后往前加则用stack或者递归
4 困难 Median of Two Sorted Arrays Median of Two Sorted Arrays 1. Kth element
2. Partition + Binary Searth
周二
3 中等 Longest Substring Without Repeating Characters Longest Substring Without Repeating Characters 1. HashMap or HashSet
2. 256 size Array
5 中等 Longest Palindromic Substring Longest Palindromic Substring 1. 分奇偶
2. DP
3. 了解Manacher's
973 中等 K Closest Points to Origin K Closest Points to Origin topK
42 困难 Trapping Rain Water Trapping Rain Water 1. DP
2. Stack
周三
53 简单 Maximum Subarray Maximum Subarray 前面所有sum为负舍弃问题,与152乘积子数组一起练习
200 中等 Number of Islands Number of Islands 1. DFS
2. BFS
3. Union Find
56 中等 Merge Intervals Merge Intervals 按头排序,比较尾巴
23 困难 Merge k Sorted Lists Merge k Sorted Lists 1. Merge Sort
2. minHeap
周四
20 简单 Valid Parentheses Valid Parentheses 1. Stack,注意pop时EmptyStackException
2. counter
253 中等 Meeting Rooms II Meeting Rooms II 1. Sort
2. TreeMap
3. minHeap
33 中等 Search in Rotated Sorted Array Search in Rotated Sorted Array BST,先确定左右两边哪边有序
301 困难 Remove Invalid Parentheses Remove Invalid Parentheses 1. BFS
2. DFS
周五
322 中等 Coin Change Coin Change DP - Bottom up
138 中等 Copy List with Random Pointer Copy List with Random Pointer 1. HashMap
2. 遍历三次
449 中等 Serialize and Deserialize BST Serialize and Deserialize BST DFS前序遍历,二分优化
297 困难 Serialize and Deserialize Binary Tree Serialize and Deserialize Binary Tree 1. DFS前序遍历
2. BFS层序遍历
周六周日重写不够熟悉的题目

第二周

 题号   难度  题目链接             答案             简单总结
周一
79 中等 Word Search Word Search Backtracking
(visited + 优化空间)
560 中等 Subarray Sum Equals K Subarray Sum Equals K preSum + HashMap
46 中等 Permutations Permutations 回溯模板
103 中等 Binary Tree Zigzag Level Order Traversal Binary Tree Zigzag Level Order Traversal 1. BFS标记
2. DFS 递归栈记录
周二
215 中等 Kth Largest Element in an Array Kth Largest Element in an Array 掌握两种
1. 堆
2. 快速选择
49 中等 Group Anagrams Group Anagrams HashMap,确定key
31 中等 Next Permutation Next Permutation 1. 从后向前找一个非增长的元素,位置p
2. 再次从后向前找到第一个比刚才位置p元素大的元素,位置q,交换p,q
3. p位置后面的数组元素翻转
10 困难 Regular Expression Matching Regular Expression Matching DP
周三
91 中等 Decode Ways Decode Ways 1.递归
2.DP
127 中等 Word Ladder Word Ladder 无向图BFS
139 中等 Word Break Word Break DP,第二个循环往左,Trie解法不要求
295 困难 Find Median from Data Stream Find Median from Data Stream 1大顶堆 + 1小顶堆
周四
100 简单 Same Tree Same Tree 递归,BFS
98 中等 Validate Binary Search Tree Validate Binary Search Tree 前序,中序
621 中等 Task Scheduler Task Scheduler Greedy排序
642 困难 Design Search Autocomplete System Design Search Autocomplete System Coding: Trie
System Design
周五
283 简单 Move Zeroes Move Zeroes Two Pointers
986 中等 Interval List Intersections Interval List Intersections Two Pointers
39 中等 Combination Sum Combination Sum 回溯模板
85 困难 Maximal Rectangle Maximal Rectangle 1.Stack
2.DP
周六周日重写不够熟悉的题目

第三周

 题号   难度  题目链接             答案             简单总结
周一
207 中等 Course Schedule Course Schedule DAG的BFS和DFS
227 中等 Basic Calculator II Basic Calculator II Stack压入数字,乘除弹出数字进行运算,加减最后运算
34 中等 Find First and Last Position of Element in Sorted Array Find First and Last Position of Element in Sorted Array 两次Binary Search
二分法模板
124 困难 Binary Tree Maximum Path Sum Binary Tree Maximum Path Sum DFS后序遍历
周二
341 中等 Flatten Nested List Iterator Flatten Nested List Iterator stack从后向前存
133 中等 Clone Graph Clone Graph 图的DFS和BFS
695 中等 Max Area of Island Max Area of Island 同200,DFS/BFS/UnionFind
239 困难 Sliding Window Maximum Sliding Window Maximum Heap
周三
426 中等 Convert Binary Search Tree to Sorted Doubly Linked List Convert Binary Search Tree to Sorted Doubly Linked List 中序遍历
300 中等 Longest Increasing Subsequence Longest Increasing Subsequence 1. DP
2. Greedy + Binary Search
50 中等 Pow(x, n) Pow(x, n) 二分+递归
45 困难 Jump Game II Jump Game II Greedy(BFS)
周四
173 中等 Binary Search Tree Iterator Binary Search Tree Iterator Stack模拟中序遍历
210 中等 Course Schedule II Course Schedule II 1.BFS
2.DFS
199 中等 Binary Tree Right Side View Binary Tree Right Side View 1.树的BFS
2.树的DFS-根右左
212 困难 Word Search II Word Search II Trie+Backtracking
周五
105 中等 Construct Binary Tree from Preorder and Inorder Traversal Construct Binary Tree from Preorder and Inorder Traversal 1.递归,需要搞清楚递归的参数
2.迭代,用Stack
277 中等 Find the Celebrity Find the Celebrity 出度为0
211 中等 Add and Search Word - Data structure design Add and Search Word - Data structure design Trie
329 困难 Longest Increasing Path in a Matrix Longest Increasing Path in a Matrix 1.记忆化搜索
2.基于top sort的DP
周六周日重写不够熟悉的题目

第四周

 题号   难度  题目链接             答案             简单总结
周一
198 简单 House Robber House Robber 好好练习DP
545 中等 Boundary of Binary Tree Boundary of Binary Tree 1. 分成三部分
2. 先序
547 中等 Friend Circles Friend Circles 1. DFS
2. BFS
3. Union Find
128 困难 Longest Consecutive Sequence Longest Consecutive Sequence 1.HashSet
2.HashMap + DP
3. Union Find
周二
235 简单 Lowest Common Ancestor of a Binary Search Tree Lowest Common Ancestor of a Binary Search Tree BST特性
208 中等 Implement Trie (Prefix Tree) Implement Trie (Prefix Tree) 挨个处理传入参数的字符即可
165 中等 Compare Version Numbers Compare Version Numbers 逐个比较每个小版本号
84 困难 Largest Rectangle in Histogram Largest Rectangle in Histogram 1. 要知道暴力法,两边扩散
2. Stack + 哨兵,与85对比
周三
110 简单 Balanced Binary Tree Balanced Binary Tree 求深度然后比较是否大于1
230 中等 Kth Smallest Element in a BST Kth Smallest Element in a BST InOrder
36 中等 Valid Sudoku Valid Sudoku three hashsets分別查row col cube
272 困难 Closest Binary Search Tree Value II Closest Binary Search Tree Value II InOrder, LinkedList
周四
28 简单 Implement strStr() Implement strStr() 常规暴力解法
KMP要了解一下
611 中等 Valid Triangle Number Valid Triangle Number 固定最大边,双指针两条较小的边,类似3Sum
366 中等 Find Leaves of Binary Tree Find Leaves of Binary Tree DFS,其实是先序
123 困难 Best Time to Buy and Sell Stock III Best Time to Buy and Sell Stock III 确定状态机的套路
周五
346 简单 Moving Average from Data Stream Moving Average from Data Stream LinkedList/Deque
209 中等 Minimum Size Subarray Sum Minimum Size Subarray Sum 双指针
二分法
240 中等 Search a 2D Matrix II Search a 2D Matrix II 从右上或者左下开始查找,每次去掉一行或一列
407 困难 Trapping Rain Water II Trapping Rain Water II PQ + BFS
周六周日重写不够熟悉的题目

第五周

 题号   难度  题目链接             答案             简单总结
周一
339 简单 Nested List Weight Sum Nested List Weight Sum 递归DFS
116 中等 Populating Next Right Pointers in Each Node Populating Next Right Pointers in Each Node 遍历到当前节点式,处理左右子树,DFS或BFS
114 中等 Flatten Binary Tree to Linked List Flatten Binary Tree to Linked List 1. 先序迭代
2.后序遍历
305 困难 Number of Islands II Number of Islands II Union Find
周二
463 简单 Island Perimeter Island Perimeter 直接遍历,按照遍历顺序优化只用检查右边和下边的就行
284 中等 Peeking Iterator Peeking Iterator 在Implemented的迭代器基础上新增一个变量记录头部元素即可
142 中等 Linked List Cycle II Linked List Cycle II 先两步一步,再一步一步
109 中等 Convert Sorted List to Binary Search Tree Convert Sorted List to Binary Search Tree 快慢指针找中点,递归构建
周三
252 简单 Meeting Rooms Meeting Rooms 对会议开始时间进行排序,检查后一个会议的开始时间是否早于前一个会议的结束时间
130 中等 Surrounded Regions Surrounded Regions 1.DFS
2.BFS
3.Union Find
285 中等 Inorder Successor in BST Inorder Successor in BST 中序遍历
450 中等 Delete Node in a BST Delete Node in a BST 找到待删除节点后的处理情况
周四
104 简单 Maximum Depth of Binary Tree Maximum Depth of Binary Tree DFS/BFS
150 中等 Evaluate Reverse Polish Notation Evaluate Reverse Polish Notation 1.Stack
2.递归
1008 中等 Construct Binary Search Tree from Preorder Traversal Construct Binary Search Tree from Preorder Traversal 1. 递归
2.stack
223 中等 Rectangle Area Rectangle Area 先求两矩形面积,再减去重叠区面积
周五
704 简单 Binary Search Binary Search 模板
244 中等 Shortest Word Distance II Shortest Word Distance II HashMap
113 中等 Path Sum II Path Sum II DFS回溯
654 中等 Maximum Binary Tree Maximum Binary Tree 递归
周六周日重写不够熟悉的题目

第六周

 题号   难度  题目链接             答案             简单总结
周一
605 简单 Can Place Flowers Can Place Flowers 贪心
1026 中等 Maximum Difference Between Node and Ancestor Maximum Difference Between Node and Ancestor DFS找节点和其左右子树的最大值和最小值
86 中等 Partition List Partition List 双指针,交换指针的下一个元素
51 困难 N-Queens N-Queens Backtracking
周二
303 简单 Range Sum Query - Immutable Range Sum Query - Immutable 1.直接做
2.记忆化搜索
307 中等 Range Sum Query - Mutable Range Sum Query - Mutable 1.直接做
2.线段树
946 中等 Validate Stack Sequences Validate Stack Sequences 用栈模拟过程
236 中等 Lowest Common Ancestor of a Binary Tree Lowest Common Ancestor of a Binary Tree 根据节点所处的位置进行递归
周三
206 简单 Reverse Linked List Reverse Linked List 迭代和递归都掌握
15 中等 3Sum 3Sum 双指针的扩展-三指针
402 中等 Remove K Digits Remove K Digits 删除较大的左邻居
22 中等 Generate Parentheses Generate Parentheses 递归检查左右括号的剩余数量
周四
290 简单 Word Pattern Word Pattern HashMap 可用另外一个HashMap替代containsValue()
452 中等 Minimum Number of Arrows to Burst Balloons Minimum Number of Arrows to Burst Balloons 贪心,注意按照左右边缘排序的区别
55 中等 Jump Game Jump Game 1.DP比较前一个元素和前一个状态
2.贪心
473 中等 Matchsticks to Square Matchsticks to Square DFS并剪枝
周五
169 简单 Majority Element Majority Element 投票算法
78 中等 Subsets Subsets 回溯模板
187 中等 Repeated DNA Sequences Repeated DNA Sequences 两个sets:
1.滑动窗口
2.位操作
120 中等 Triangle Triangle DP从最后一行开始递推
周六周日重写不够熟悉的题目

第七周

 题号   难度  题目链接             答案             简单总结
周一
160 简单 Intersection of Two Linked Lists Intersection of Two Linked Lists 确保两个指针走相同长度的路
1197 中等 Minimum Knight Moves Minimum Knight Moves BFS最短路径
1248 中等 Count Number of Nice Subarrays Count Number of Nice Subarrays 1.双指针
2.前缀和
727 困难 Minimum Window Subsequence Minimum Window Subsequence 二维DP
周二
21 简单 Merge Two Sorted Lists Merge Two Sorted Lists dummy迭代和递归都要掌握
1371 中等 Find the Longest Substring Containing Vowels in Even Counts Find the Longest Substring Containing Vowels in Even Counts 前缀和+状态压缩
863 中等 All Nodes Distance K in Binary Tree All Nodes Distance K in Binary Tree 1.DFS
2.BFS当作图处理
6 中等 ZigZag Conversion ZigZag Conversion 坐标转换
周三
232 简单 Implement Queue using Stacks Implement Queue using Stacks 两个stacks
8 中等 String to Integer (atoi) String to Integer (atoi) 空格/正负号/越界等corner cases
62 中等 Unique Paths Unique Paths DP并考虑状态压缩
63 中等 Unique Paths II Unique Paths II DP并考虑状态压缩,障碍物影响路径状态
周四
155 简单 Min Stack Min Stack 1.两个stack
2.一个stack,最小值存在栈顶元素下
102 中等 Binary Tree Level Order Traversal Binary Tree Level Order Traversal 1. BFS
2. DFS了解
153 中等 Find Minimum in Rotated Sorted Array Find Minimum in Rotated Sorted Array 按情况Binary Search
213 中等 House Robber II House Robber II 分区间DP
周五
455 简单 Assign Cookies Assign Cookies 排序+贪心
323 中等 Number of Connected Components in an Undirected Graph Number of Connected Components in an Undirected Graph 1. DFS
2. BFS
3. Union Find
347 中等 Top K Frequent Elements Top K Frequent Elements 1. HashMap + 最大堆
2. TreeMap
3. 桶排序
373 中等 Find K Pairs with Smallest Sums Find K Pairs with Smallest Sums 最小堆
周六周日重写不够熟悉的题目

第八周

 题号   难度  题目链接             答案             简单总结
周一
108 简单 Convert Sorted Array to Binary Search Tree Convert Sorted Array to Binary Search Tree 二分搜索父节点
929 简单 Unique Email Addresses Unique Email Addresses 直接思路,hashset除重
1011 中等 Capacity To Ship Packages Within D Days Capacity To Ship Packages Within D Days 二分搜索
887 困难 Super Egg Drop Super Egg Drop 记忆化搜索,DP
周二
538 简单 Convert BST to Greater Tree Convert BST to Greater Tree 先右后左
703 简单 Kth Largest Element in a Stream Kth Largest Element in a Stream 优先队列实现小顶堆
776 中等 Split BST Split BST 递归,根据当前root值,连接左子树的较大部分或右子树的较小部分
779 中等 K-th Symbol in Grammar K-th Symbol in Grammar 按规律递归
周三
35 简单 Search Insert Position Search Insert Position 正常二分,注意left移动的位置
674 简单 Longest Continuous Increasing Subsequence Longest Continuous Increasing Subsequence DP**的简化
1143 中等 Longest Common Subsequence Longest Common Subsequence 二维DP
11 中等 Container With Most Water Container With Most Water Two Pointers
周四
409 简单 Longest Palindrome Longest Palindrome HashSet的remove方法
54 中等 Spiral Matrix Spiral Matrix 四个变量记录四边
59 中等 Spiral Matrix II Spiral Matrix II 四个变量记录四边
17 中等 Letter Combinations of a Phone Number Letter Combinations of a Phone Number 1.DFS
2.BFS
周五
136 简单 Single Number Single Number 异或
7 简单 Reverse Integer Reverse Integer 注意负数会多一个即可,正常判断或者除以10再乘以10判断是否想等数,可以不单独判断正负号
19 中等 Remove Nth Node From End of List Remove Nth Node From End of List 双指针
238 中等 Product of Array Except Self Product of Array Except Self 1.额外两个数组
2.结果数组中先计算前缀乘积,再变量记录后缀乘积
周六周日重写不够熟悉的题目

第九周

 题号   难度  题目链接             答案             简单总结
周一
88 简单 Merge Sorted Array Merge Sorted Array 从后向前,注意为空的corner cases
380 中等 Insert Delete GetRandom O(1) Insert Delete GetRandom O(1) HashMap + 动态数组
378 中等 Kth Smallest Element in a Sorted Matrix Kth Smallest Element in a Sorted Matrix 值的二分查找
269 困难 Alien Dictionary Alien Dictionary 1.图的DFS
2.图的BFS
3.拓扑排序
周二
83 简单 Remove Duplicates from Sorted List Remove Duplicates from Sorted List 保留第一个,检查后面是否重复
82 中等 Remove Duplicates from Sorted List II Remove Duplicates from Sorted List II 1.双指针
2.递归
348 中等 Design Tic-Tac-Toe Design Tic-Tac-Toe 不用绘制棋盘,只需检查每条线上的棋子
289 中等 Game of Life Game of Life 状态机
周三
111 简单 Minimum Depth of Binary Tree Minimum Depth of Binary Tree 1.递归
2.BFS
234 简单 Palindrome Linked List Palindrome Linked List 1.Stack记录
2.递归
3.翻转后半截双指针比较
48 中等 Rotate Image Rotate Image 第一步,转置矩阵(行列互换);第二步,逐行交换头尾
152 中等 Maximum Product Subarray Maximum Product Subarray DP或者直接滚动数组,记录一个最大值和最小值
周四
112 简单 Path Sum Path Sum 递归
202 简单 Happy Number Happy Number HashSet保存结果
179 中等 Largest Number Largest Number 字符相加然后比较
75 中等 Sort Colors Sort Colors 三路快排的**,交换0和2
周五
121 简单 Best Time to Buy and Sell Stock Best Time to Buy and Sell Stock 股票DP系列
122 简单 Best Time to Buy and Sell Stock II Best Time to Buy and Sell Stock II 股票DP系列
315 困难 Count of Smaller Numbers After Self Count of Smaller Numbers After Self 1.二分搜索
2.线段树
218 困难 The Skyline Problem The Skyline Problem 扫描线算法
周六周日重写不够熟悉的题目

第十周

 题号   难度  题目链接             答案             简单总结
周一
141 简单 Linked List Cycle Linked List Cycle 快慢指针
13 简单 Roman to Integer Roman to Integer 按情况分即可
148 中等 Sort List Sort List Merge Sort
76 困难 Minimum Window Substring Minimum Window Substring 滑动窗口
周二
276 简单 Paint Fence Paint Fence
14 简单 Longest Common Prefix Longest Common Prefix
131 中等 Palindrome Partitioning Palindrome Partitioning
287 中等 Find the Duplicate Number Find the Duplicate Number
周三
349 简单 Intersection of Two Arrays Intersection of Two Arrays
166 中等 Fraction to Recurring Decimal Fraction to Recurring Decimal
279 中等 Perfect Squares Perfect Squares
395 中等 Longest Substring with At Least K Repeating Characters Longest Substring with At Least K Repeating Characters
周四
387 简单 First Unique Character in a String First Unique Character in a String
392 简单 Is Subsequence Is Subsequence 1.双指针
2.DP
221 中等 Maximal Square Maximal Square
149 困难 Max Points on a Line Max Points on a Line
周五
617 简单 Merge Two Binary Trees Merge Two Binary Trees
204 简单 Count Primes Count Primes
41 中等 First Missing Positive First Missing Positive
340 困难 Longest Substring with At Most K Distinct Characters Longest Substring with At Most K Distinct Characters
周六周日重写不够熟悉的题目

extra

 题号   难度  题目链接             答案             简单总结
周一
448 简单 Find All Numbers Disappeared in an Array Find All Numbers Disappeared in an Array
394 中等 Decode String Decode String
338 中等 Counting Bits Counting Bits
406 中等 Queue Reconstruction by Height Queue Reconstruction by Height
周二
438 中等 Find All Anagrams in a String Find All Anagrams in a String
416 中等 Partition Equal Subset Sum Partition Equal Subset Sum
437 中等 Path Sum III Path Sum III
494 中等 Target Sum Target Sum
周三
543 简单 Diameter of Binary Tree Diameter of Binary Tree
647 简单 Palindromic Substrings Palindromic Substrings
739 中等 Daily Temperatures Daily Temperatures
162 中等 Find Peak Element Find Peak Element
周四
242 简单 Valid Anagram Valid Anagram
268 简单 Missing Number Missing Number
73 中等 Set Matrix Zeroes Set Matrix Zeroes
29 中等 Divide Two Integers Divide Two Integers
周五
38 简单 Count and Say Count and Say
189 简单 Rotate Array Rotate Array
384 中等 Shuffle an Array Shuffle an Array
44 困难 Wildcard Matching Wildcard Matching
周六
101 简单 Symmetric Tree Symmetric Tree
70 简单 Climbing Stairs Climbing Stairs
134 中等 Gas Station Gas Station
140 困难 Word Break II Word Break II
周日
简单
简单
877 中等 Stone Game Stone Game
困难

经典话题

01背包问题 当被问到背包的时候,你第一个想到的是什么?点击查看回溯 + 动态规划两种方式解决背包问题

背包九讲

LRU LRU主要考察你什么?

系统设计

General

  1. Designing Data Intensive Application 中文版

  2. General互联网产品的设计

  3. Tushar Roy算法和系统设计

  4. Tech Dummies系统设计

  5. Gaurav Sen系统设计

Metrics System

  1. 新手也能看懂的监控报警系统架构设计
  2. 中小型运维团队如何设计运维自动化平台

Distributed Transaction

  1. Distributed Transactions with MicroServices
  2. 分布式文件系统

DB

Log System

Microservice

Message Queue

Chat Apps

Rate Limiter

Payment Systems

  1. 被问到“设计一个支付系统”的思考角度
  2. 支付平台架构设计的一些思考
  3. Avoiding Double Payments in a Distributed Payments System
  4. Paymeng System和API Server如何互相验证1, Paymeng System和API Server如何互相验证2
  5. Uber支付系统案例

Cache

Compiler

案例

  1. Design a Chat System (Facebook messenger, Whatsapp)
  2. Design a Video Streaming Service (YouTube, Netflix)
  3. Design a Key-value Store
  4. Design a URL shortener
  5. Design a Web Crawler
  6. Design a Shared Cloud Drive (Google Drive, Dropbox)
  7. Design a News feed System
  8. Design a Search Autocomplete System
  9. Design a Notification System
  10. Design a scalable system that supports millions of users

Behavioral Questions

  1. 100个General BQ与答案
  2. Amazon 14条行为准则
  3. Netflix文化手册

notes's People

Contributors

guilindev avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.