LeetCode Lean 分享

Posted by boredream on September 4, 2020

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 切换语言版本