• LeetCode 题目总结


    本博客不定期更新LeetCode题目总结,所有题目使用Java实现,小部分题目也提供JavaScript代码。我不追求一行AC但是我追求一题多解,比较常规的思路,解释清楚复杂度,代码可读性强。欢迎留言和评论,共同进步。这本是我自己用来复习的笔记,如果也能帮到你,那也是我的福报。

    如果你想按类型刷题,可以参考我的标签。我做出的分类比LC官方的更细一些,比如我有如下展示的这些类型,其中有一些类型在2021年6月以前官方没有收录,有的按照题设分类,有的按照思路/解法分类。同时有一些题目的解法或者思想很类似的,我也会以相关题目的形式列在文章的最底部。对于每一种类型的题,你可以基本按照题号从小到大开始刷,比较小的题号(尤其前400)都是经典题,比较大的题号往往是前400题内相同类型题目的 followup 或变形。题是刷不完的,只有总结反思才会有提高。

    • flood fill 岛屿类 - 往往是通过BFS/DFS从一个点开始遍历整个二维数组,根据题意找岛的个数/面积
    • matrix 矩阵类,跟岛屿类型的题很接近,但是主要考点是二维数组的非常规遍历,翻转。官方把岛屿类的题也归类到 matrix 一类了,我这里做了一些区分
    • monotonic stack 单调栈 - 不容易想到但是的确能解决问题的一种思路,如果不用单调栈,暴力解基本是 O(n^2) 级别的
    • two pointer 双指针,包括很多可以用双指针做但是没有标注成双指针类型的题
    • line sweep 扫描线
    • counting sort 计数排序
    • bucket sort 桶排序
    • Longest Increasing Subsequence (LIS) 最长递增子序列
      • 这个类型的题往往跟DP有关
    • two sum 两数之和 - 一些算是 two sum 的 followup 题
    • MOD - 结果非常大,需要取模的题。如果需要优化,大多涉及到二分
    • binary search 二分法
    • Dijkstra 迪杰斯特拉算法
      • 使用类似广度优先搜索的方法解决有权图的单源最短路径问题
    • graph 图论 - 包括很多 input signature 给的是树但是实际是需要自己把图或邻接表建立起来的题,和官方压根没有给出 graph 这个 tag 的题(比如1192题2021年6月这个题官方加了tag了
    • knapsack 背包问题 - 动态规划中的一个子类
    • memorization - 记忆化(递归)- 动态规划中的一个子类
    • simulation - 模拟,一般不涉及算法,就是根据题意实现

    发现博客园没有很好的文章目录,我做了一个腾讯文档记录总结写过题解的题目并附上链接。

  • 相关阅读:
    tcl中指定随机数种子
    redis的三种连接方式
    js代码统计table中某一列的值
    CRF从HMM的演进
    SVM中的一些问题
    bert损失函数
    SQL 注入笔记
    20200818 千锤百炼软工人第四十四天
    20200816 千锤百炼软工人第四十三天
    20200816 千锤百炼软工人第四十二天
  • 原文地址:https://www.cnblogs.com/cnoodle/p/12515334.html
Copyright © 2020-2023  润新知