LeetCode是什么?
提供在线做题、社区讨论、模拟面试的网站
LeetCode Lean是什么?
官网做的系列教程,以数据结构+算法为主,介绍+题目+总结。
为什么学?
- 锻炼逻辑能力。解决复杂业务
- 趣味性。做题的快感,解决斐波那契数列、数独等问题
- 面试。算法题
学哪些?
共15个课程,去掉Ruby和机器学习相关一共12个
基础数据结构
- Arrays 数组
- Linked List 链表
- Queue And Stack 队列和栈
- Binary Tree 二叉树
- N-ary Tree 多叉树
- Hash Table 哈希表
算法
- Recursion 1 递归1基础
- Recursion 2 递归2加强
- Binary Search 二分搜索
数据结构扩展
- Array and String 数组和字符串
- Binary Search Tree 二叉搜索树
- Trie 字典树/前缀树
怎么学?
看 -> 做题 -> 回顾思考 -> 看 -> 做题 -> 回顾思考 …循环
课程内容因为是英文,可以翻译查看 or 去中文版社区力扣找对应课程(不一定和英文版完全匹配)。
做题时,题目有自带解答Solution,有的收费可以支持下or跳过。也可以去 Go to Discuss讨论查看别人解答。
知识点总结
- Arrays 数组
- 双指针(翻转字符串)
- 各种排序写法(快速、插入、冒泡)
- 有序数组中的二分查找
- LinkedList 链表
- 双指针(删除倒数第x个元素、判断是否有循环)
- 递归(翻转链表、合并两个有序链表)
- Queue And Stack 队列和栈
- Queue (实现栈、实现BFS)
- Stack (实现队列、实现DFS、四则运算栈)
- Binary Tree 二叉树
- DFS:前 中 后序遍历,BFS:层遍历。递归 / 迭代写法
- 是否镜像、两个二叉树是否相等、LCA公共祖先结点
- 二分查找树、红黑树
- N-ary Tree 多叉树
- DFS:前 后序遍历,BFS:层遍历。递归 / 迭代写法
- Hash Table 哈希表
- o1时间复杂度的get(两数之和)
- Recursion 递归
- 递归的重复计算问题(斐波那契数列)
- 尾递归的空间复杂度优化
- 分治(快速排列)
- 回溯(排列组合、N皇后)
扩展
LeetCode刷题地址 可以按tags筛选知识点有针对性的做题
一个小技巧:
英文版看社区讨论解答地址是 https://leetcode.com/problems/two-sum/
中文版是 https://leetcode-cn.com/problems/two-sum/
大部分题目两边是对应的,所以可以在英文题目地址上加/减 -cn 切换语言版本