LeetCode丨刷题历程及总结

历程

  1. 花一周左右阅读了Problem Solving with Algorithms and Data Structures Using Python,用Python实现各类数据结构和算法。此书的中文版
  2. 2019/11/26-2020/2/2,开始刷LeetCode,按标签,通过率从高到低开始,完成218题,对标签重新归纳。

  3. 接下来整理之前做过的题目,归纳知识点和模板,还未开始。

标签整理

数据结构

  • 数组
  • 字符串
  • 链表
    • 字典树/二叉搜索树
    • 线段树/线状数组
  • 栈/队列
    • 拓扑排序
  • 哈希表
  • 并查集

算法

  • 查找

    • 二分查找
  • 排序
    • 快排
    • 堆排序
  • 贪心算法
  • DFS/BFS
  • 动态规划
  • 递归/回溯/记忆化
  • 分治
  • 双指针/滑动窗口/Line Sweep

其他

  • 设计
  • 数学/几何/脑筋急转弯
  • 位运算
  • 随机/蓄水池抽样/Rejection Sampling
  • Ordered Map/极小化极大

原文地址:https://www.cnblogs.com/vincent1997/p/12267478.html

时间: 2024-10-09 03:53:53

LeetCode丨刷题历程及总结的相关文章

LeetCode的刷题利器(伪装到老板都无法diss你没有工作)

在工程效率大行其道的今天,如果不会写点代码以后也不容易在测试圈混下去.今天给大家推荐一个LeetCode的刷题利器,可以伪装到连你老板在这里走过去都无法确认你是在干活呢,还是在干活呢. LeetCode是什么 leetcode是个题库,里面有很编程多面试的题目,可以在线编译运行.难度比较高.如果自己能都做出来,对面大公司很有帮助. 网址:https://leetcode.com/(如果对英文页面不爽的可以访问对应的中文页面:https://leetcode-cn.com/) 如果想在上面训练,首

[LeetCode] 系统刷题5_Dynamic Programming

Dynamic Programming 实际上是[LeetCode] 系统刷题4_Binary Tree & Divide and Conquer的基础上,加上记忆化的过程.就是说,如果这个题目实际上是类似于Divide and conquer或者说是DFS,但是在计算过程中有很多重复计算同样的过程的话,那么就可以用Dynamic prgramming/记忆化搜索来完成.基本就是利用空间来简化时间复杂度的过程. 可以/很有可能使用Dynamic programming的条件,满足之一即可. 1.

LeetCode开心刷题五十一天——118. Pascal's Triangle 接触跳转表概念,不知用处 lamda逗号导致表达式加法奇怪不理解119. Pascal's Triangle II

118. Pascal's Triangle Easy 87984FavoriteShare Given a non-negative integer numRows, generate the first numRows of Pascal's triangle. In Pascal's triangle, each number is the sum of the two numbers directly above it. Example: Input: 5 Output: [ [1],

LeetCode开心刷题十三天——24

习惯就是人生的最大指导 ——休谟 24. Swap Nodes in Pairs Medium 1209107FavoriteShare Given a linked list, swap every two adjacent nodes and return its head. You may not modify the values in the list's nodes, only nodes itself may be changed. 防止用增加值,存储前后变量只进行值交换,而不处理

LeetCode开心刷题五十六天——128. Longest Consecutive Sequence

最近刷题进展尚可,但是形式变化了下,因为感觉眼睛会看瞎,所以好多写在纸上.本来想放到文件夹存储起来,但是太容易丢了,明天整理下,赶紧拍上来把 今晚是周末,这一周都在不停的学学学,我想下周怕是不能睡午觉了,中午回去床对我的诱惑太大了,我得想办法,一进门先把被褥收起来,再放个欢快的歌,中午少吃点,加油小可爱 之前欠下的烂帐,把太多简单题做完,导致剩下的都是难题,所以万万记住一点捷径都不要走 128看花花酱大神的解法,发现对hashtable的了解十分不足,甚至一些常见函数都不知道是干什么的 这道题涉

LeetCode日常刷题

[1] 125. 验证回文串[简单] 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false class Solution: def isPalindrome(self, s: str) -> bool: # 回文串,

[LeetCode] 系统刷题1_代码风格及边界

代码风格 说自己不清楚的算法,比如KMP,如果解释不清楚或者写不出来的算法建议不提 注意代码的缩进以及空格的合理运用,使得代码看起来比较整洁有条理 注意边界的条件以及越界 误区: 算法想出来还仅仅不够 算法写出来也还不够 试着从面试官的角度来思考: 面试官需要多少时间review你的代码 你的coding习惯好吗 你的沟通能力怎么样 coding风格(缩进,括号,变量名) coding习惯(异常检查,边界处理) 沟通 测试(主动写出合理的test case)很重要 问自己: 你做题之前, 先在白

LeetCode开心刷题第四天——7逆序8字符转数字

7 Reverse Integer Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 Note:Assume we are dealing with an environment which could only stor

[LeetCode] 系统刷题6_Linked List

1. Dummy Node 2. Basic skills [LeetCode] 206. Reverse Linked List_Easy tag: Linked List 2. Fast slow pointers 原文地址:https://www.cnblogs.com/Johnsonxiong/p/10793769.html