代码随想录刷题|一刷总结

news2024/9/20 2:50:31

文章目录

  • 一刷总结
  • 一、 成果汇报
    • 1、leetcode提交记录
    • 2、博客更新记录
  • 二、 经验总结
    • 2.1.刷过的所有题型
      • 2.1.1、数组
      • 2.1.2、链表
      • 2.1.3、哈希表
      • 2.1.4、字符串
      • 2.1.5、栈与队列
      • 2.1.6、二叉树
      • 2.1.7、回溯
      • 2.1.8、贪心
      • 2.1.9、动态规划
      • 2.1.10、单调栈
    • 2.2、做得好的
    • 2.3、做得不好的
    • 2.4、其他的碎碎念
  • 三、 为什么要刷题
    • 3.1、面向大厂
  • 四、 未来计划
    • 4.1、二刷计划
    • 4.2、leetcode100热题计划
  • 五、 感谢


一刷总结

  • 成果汇报
  • 经验总结
  • 为什么要刷题
  • 未来计划
  • 感谢
  • 以及附件资源,里面有所有pdf,需要自取。

一、 成果汇报

1、leetcode提交记录

一刷一共刷了139题
在这里插入图片描述

历经60天的坚持,一共刷了139题。
本人之前是一题都没有刷过的,虽然工作了几年,但是算法这一块,是纯纯的小白。当年实习和社招的时候,还不需要考算法,算法能力还是比较薄弱的。

2、博客更新记录

在这里插入图片描述

博客一共更新了53篇。

二、 经验总结

2.1.刷过的所有题型

在博客最前面放上pdf,点击思维导图的右上角的【箭头】可以直接跳转到leetcode,支持一键跳转方便复习。
在这里插入图片描述
主要就是刷过所有题目的一个思维导图总结

2.1.1、数组

数组

  • 1、一刷被跳过的题目:
    • 螺旋矩阵,题目看不懂,就跳过了。
  • 2、数组的重点:
    • 数组下标都是从0开始的。
    • 数组内存空间的地址是连续的
    • 数组元素无法删除,只能覆盖
  • 3、数组的刷题技巧:
    • 二分法。
    • 双指针
    • 滑动窗口

2.1.2、链表

链表

  • 1、一刷被跳过的题目:
    • 设计链表,当时觉得代码太多,就跳过了,没有找到提交记录。
    • 链表相交,当时没有看懂题解,就跳过了。
  • 2、链表的重点:
    • 链表在内存中不连续。
    • 链表删除节点,就是跳过要删除的节点,让指针指向当前节点的下一个节点。
    • 数组元素无法删除,只能覆盖
  • 3、链表的刷题技巧:
    • 原链表删除
    • 虚拟头节点
      -增加虚拟头结点简化操作
    • 双指针法
      • 可用于反转链表、删除倒N、链表相交等场景。
    • 递归反转链表
    • 判断链表是否有环,判断环的入口在哪里

2.1.3、哈希表

哈希表

  • 1、一刷被跳过的题目:
    • 赎金信,easy题,当时好像是题目都没看懂,所以直接被我跳过了。
  • 2、哈希表的重点:
    • 哈希表一般用来快速判断一个元素是否出现集合里。
    • 哈希表可分为数组、set集合、map三类,应根据不同场景选择合适的数据结构。
  • 3、哈希表的刷题技巧:
    • 使用数组作为哈希表
    • 使用set集合作为哈希表
    • 使用map作为哈希表
    • 这三种数据结构没有固定的套路,需要灵活选择。

2.1.4、字符串

字符串

  • 1、一刷被跳过的题目:
    • 重复的字符串,easy题,不知道为啥当时被我跳过了。
  • 2、字符串的重点:
    • 双指针解题思路
    • kmp算法,要知道什么是前缀表,前缀表怎么求。
  • 3、字符串的刷题技巧:
    • 双指针法
      • 可用于反转字符串、移除元素等场景。
      • 先整体再局部
    • KMP算法

2.1.5、栈与队列

栈与队列

  • 1、一刷被跳过的题目:
    • 滑动窗口最大值,hard题
  • 2、栈与队列的重点:
    • 什么是栈,如何实现(设计)栈
    • 什么是队列,如何实现(设计)队列
    • kmp算法,要知道什么是前缀表,前缀表怎么求。
  • 3、栈与队列的刷题技巧:
    • 匹配问题一般都可以用栈解决
      • 使用栈解决括号匹配问题
      • 使用栈解决字符串匹配问题
      • 使用栈解决逆波兰表达式问题
    • 队列有单调队列、优先队列等
      • 使用队列解决滑动窗口最大值问题,单调队列
      • 使用队列解决前K个高频元素问题,优先队列

2.1.6、二叉树

二叉树

  • 1、一刷被跳过的题目:
    - 迭代遍历,大部分的题目的迭代遍历都被我跳过了,二刷再来看吧。
  • 2、树的重点:
    • 树的种类
    • 树的遍历方式
      • 递归遍历,是深度优先遍历。递归法有模板,一定要牢记
      • 迭代遍历、统一迭代遍历,是深度优先遍历
      • 层序遍历,是广度优先遍历。层序法有模板,一定要牢记
  • 3、树的刷题技巧:
    • 二叉树的属性
      • 一般可以用递归和迭代解决
      • 需要想明白用哪种遍历方式,以及遍历顺序,用前中后序的哪一种。
    • 二叉树的修改与构造
      • 掌握递归遍历即可
    • 二叉搜索树的属性
      • 解题思路还是一致的,但是需要想想是否可以利用搜索树的特性,更加方便快捷的解决问题
    • 二叉搜索树的修改与构造
      • 思考是否可以利用二叉搜索树的属性。
    • 二叉树的祖先问题

2.1.7、回溯

回溯

  • 1、一刷被跳过的题目:
    • 重新安排行程,hard题,研究明白了也意义不大,面试遇到了算我输,战略性放弃。
    • N皇后,hard题,研究明白了也意义不大,面试遇到了算我输,战略性放弃。
    • 解数独,hard题,研究明白了也意义不大,面试遇到了算我输,战略性放弃。
  • 2、回溯的重点:
    • 回溯是递归的副产品,回溯常常和递归绑定在一起
    • 回溯法就是暴力搜索,并不高效,但通常可以剪枝,优化算法效率。
    • 回溯有模板。一定要牢记。
  • 3、回溯的刷题技巧:
    • 回溯解决组合问题
      • N个数里面按一定规则找出k个数的集合,排列顺序无所谓。
    • 回溯解决分割问题
      • 一个字符串按一定规则有几种分割方式
    • 回溯解决子集问题
      • 一个N个数的集合里有多少符合条件的子集
    • 回溯解决排列问题
      • N个数按一定规则全排列,有几种排列方式。严格关注排列顺序,顺序会影响结果。
    • 回溯解决棋盘问题

2.1.8、贪心

贪心

  • 1、一刷被跳过的题目:
    • 监控二叉树,hard题,研究明白了也意义不大,面试遇到了算我输,战略性放弃。
  • 2、贪心的重点:
    • 贪心没有模板,也没有套路
    • 贪心算法的核心思想就是把一个问题拆分为多个子问题。每个子问题取得最优解。从局部最优解从而推得全局最优解,所以叫贪心。
  • 3、贪心的刷题技巧:
    • 贪心简单题
      • 没啥技巧,全靠常识,但是一刷还是想不到的,需要看题解。
    • 序列问题
    • 2个维度权衡问题
      • 要先确定一个维度,再确定另外一个维度,不可以俩个维度同时考虑
    • 股票问题
      • 贪心也可以解决股票问题
    • 区间问题
      • 已经有点难了,各种重复问题

2.1.9、动态规划

动态规划

  • 1、一刷被跳过的题目:
    • 最长重复子数组,不知道为啥漏了,可能刷题的时候漏看了吧。。
  • 2、动态规划的重点:
    • 动态规划有模板,需要牢记
      -动态规划难点在于状态转移方程的推导和遍历顺序,尤其是遍历顺序很容易绕晕。
  • 3、动态规划的刷题技巧:
    • 动态规划简单题
      • 有的题目简单到,题目描述中已经告诉你状态转移方程了,其他的没有,也可以比较简单的想出来。
    • 01背包问题
      • 物品只能使用一次,状态转移方程比较固定
      • 二维数组解法,一定要掌握
      • 一维数组解法,二维数组的优化,一刷了解即可。
      • 01背包一般用来解决
        • 能否装满背包问题
        • 背包最多可以装多少的问题
    • 完全背包问题
      • 物品可以无限次使用
      • 完全背包一般用来解决
        • 装满背包有几种方法
        • 装满背包所需物品的最小个数
    • 打家劫舍问题
      • 普通的打家劫舍
      • 成环的打家劫舍
      • 树形的打家劫舍
    • 买卖股票问题
      • 经典中的经典
    • 子序列问题
      • 不连续子序列
      • 连续子序略
      • 编辑距离问题
      • 回文问题

2.1.10、单调栈

单调栈

  • 1、一刷被跳过的题目:
    • ,没有漏刷的
  • 2、单调栈的刷题技巧:
    • 单调递增问题
    • 单调递减问题

2.2、做得好的

在平时繁忙的工作中坚持下来,真的很值得高兴。这其实不难,关键在于是否有足够的动力。清明假期期间,我出去旅游了几天,差点就放弃了。幸好,还是坚持了下来,假期花了2天时间,也跟上了进度,并没有半途而废。给自己点个赞。

2.3、做得不好的

  1. 有些题没有真正理解:有些题,看了题解还是不会,为了跟上进度,也只是把答案一抄完事,其实还是没有真正理解的,这点需要批评一下。
    1.1.例如二叉树的迭代遍历,动态规划中的股票问题(主要是那个最多次的和编辑距离问题)。

  2. 每周总结没有坚持:回看了一下,每周总结我只写了一次,后面都是偷懒没写。没有画出自己的理解,没有用思维导图总结解题思路和方法。

2.4、其他的碎碎念

坚持下来不容易,检验成果就看今年跳槽情况了,装的很努力没有用,坚持更新了博客也并不代表所有题目我真的全部掌握了,有句话说得好,实践出真知。

三、 为什么要刷题

3.1、面向大厂

22年面试过Lanzanda和tengxun,都是倒在了算法这一关。刷题主要就是为了面试,为了更好的薪水,另一方面也是年内有跳槽的想法。要有更好的薪资,只能往大厂跳,那么算法是必不可少的,所以必须刷。

四、 未来计划

4.1、二刷计划

  • 算法练习不能只做一遍,初次刷题主要是熟悉不同题型的解题方法,但随着时间推移,一些解法可能会渐渐遗忘。解决这个问题的办法很简单:多刷多练。我打算先休息半个月到一个月,然后设定一个小目标,从5月中下旬开始第二轮刷题。
  • 在休息期间,多花点时间复习自己之前写的博客,这也是一种很好的复习方式。
  • 还有一些题目,一刷暂时跳过了,二刷再补回去。

4.2、leetcode100热题计划

leetcode上有热提题100道,感觉只刷了代码随想录可能不太够,这个具体看时间吧。看是二刷代码随想录的时候一起刷热题100,还是单独抽出时间刷。目前没有具体的时间表,过了五一再看。
在这里插入图片描述

五、 感谢

最后,感谢卡尔大佬,跟着刷学习到了很多,卡尔大佬的视频和pdf对我的刷题提供了巨大的帮助。强烈推荐。
pdf:某度直接搜【代码随想录】
视频:b站直接搜【代码随想录】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1612115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

行业模板|DataEase批发零售大屏模板推荐

DataEase开源数据可视化分析平台于2022年6月发布模板市场(https://templates-de.fit2cloud.com),并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板,方便用户根据…

AtCoder Beginner Contest 350 ----- F - Transpose ---- 题解

F - Transpose: 题目描述: 思路解析: 如果有一对括号,那么删掉括号对,并且将括号对里的字符串翻转,在翻转过程中,使字符串的字母改变大小写。那我们可以通过预处理找到每个括号对。 例如 A(x(AXB)x)B …

计算机网络——数据链路层(介质访问控制)

计算机网络——数据链路层(介质访问控制) 介质访问控制静态划分信道动态划分信道ALOHA协议纯ALOHA(Pure ALOHA)原理特点 分槽ALOHA(Slotted ALOHA)原理特点 CSMA协议工作流程特点 CSMA-CD 协议工作原理主要…

快速开发部署平台Replit

Replit 是可以快速搭建开发、部署环境的平台。能够快速将原型进行部署,代码编辑器支持协同开发,他的在线编辑器做的不错,相当于云上提供了一个 vscode,代码实时更新。Replit 底层是基于容器技术的,可以安全的隔离多个用…

最新Java面试题3【2024中级】

互联网大厂面试题 1:阿里巴巴Java面试题 2:阿里云Java面试题-实习生岗 3:腾讯Java面试题-高级 4:字节跳动Java面试题 5:字节跳动Java面试题-大数据方向 6:百度Java面试题 7:蚂蚁金服Java…

【数据结构2-线性表】

数据结构2-线性表 1 线性表-数组2 线性表-单链式结构2.1 前插顺序单链表2.2 后插顺序单链表2.3 循环单链表2.4 双向链表 总结 线性表、栈、队列、串和数组都属于线性结构。 线性结构的基本特点是除第一个元素无直接前驱,最后一个元素无直接后继之外,其他…

Linux应用开发(8):Linux进程间通信(IPC):管道

Linux应用开发(7):Linux进程间通信(IPC):POSIX消息队列https://blog.csdn.net/tecsai/article/details/137879465 1. 简述 我们在前面已经介绍了进程间通信(IPC)常用的“消息队列”…

[大模型]TransNormerLLM-7B FastApi 部署调用

TransNormerLLM-7B FastApi 部署调用 1. TransNormer 介绍 TransNormerLLM 是一个基于线性注意力的 LLM,在准确性和效率方面均优于传统的基于 softmax 注意力的模型。它是在包含多达1.4 万亿个令牌的高质量语料库上进行训练的,TransNormerLLM 从之前的…

【Scientific American】【科学美国人杂志】2024年4月号:目录部分

说明: 仅供学习、参考使用,请勿用于商业用途。 本期购于新加坡,封面图: Contents Special Report: What we’re learning from AI The Race to Decode an Ancient Scroll How scientists, students, gamers and Silicon Valle…

在 Linux 中删除文件和文件夹

目录 ⛳️推荐 前言 删除文件 🏋️练习文件删除 小心删除 删除目录 🏋️练习文件夹删除 测试你的知识 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到…

setmapAVL树红黑树

目录 关联式容器树形结构的关联式容器setset的模板参数列表set的构造函数set的迭代器set的容量操作set其他操作 multisetmap键值对map的模板参数列表map的迭代器map中元素的修改map的容量与元素访问 multimap底层结构avl树avl树概念AVL树结点的定义AVL树的插入AVL树的旋转AVL树…

(助力国赛)美赛O奖数学建模可视化!!!含代码3(误差限图、冰柱图、树图)

众所周知,数学建模的过程中,将复杂的数据和模型结果通过可视化图形呈现出来,不仅能够帮助我们更深入地理解问题,还能够有效地向评委展示我们的研究成果。   今天,承接《可视化代码2》,作者将与大家分享《…

我用ADAU1467加5个ADAU1772,做20进10出的音频处理板(一):硬件设计思路和原理图

作者的话 ADAU1467是现阶段ADI支持最多通道的ADAU音频DSP,他配合外部的AD/DA,可以实现最多32路音频通道,接了一个小项目,我拿它做了一块20进10出的板,10个MIC/LINE输入,10个LINE IN输入,10个HPOUT&#xf…

Redis(二) 单线程架构

redis 的单线程架构 我们都知道 redis 作为缓存,读取速度是非常快的,但是大家知道 redis 的线程架构是怎样的呢?也就是说,redis 是多线程架构还是单线程架构呢? 我们通过一个例子来了解: 首先在 redis 服…

基于Web的宠物医院信息管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本宠物医院信息管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…

【C++】explicit关键字详解(explicit关键字是什么? 为什么需要explicit关键字? 如何使用explicit 关键字)

目录 一、前言 二、explicit关键字是什么? 三、构造函数还具有类型转换的作用 🍎单参构造函数 ✨引出 explicit 关键字 🍍多参构造函数 ✨为什么需要explicit关键字? ✨怎么使用explicit关键字? 四、总结 五…

MariaDB InnoDB 空洞清理

1、背景 数据库占用服务器内存越来越高,除了bin-log文件之外,还发现了一些带有text或者longtext数据类型字段的表,这种表也会占用很高的服务器磁盘空间 数据库版本: 表引擎: InnoDB 数据量:清理之前1500万…

python安装的详细步骤

下载 1.打开Python官网.我们建议工具类的测试软件还是官网下载比较靠谱. https://www.python.org/getit/ 2.在下图界面中选择需要的方式进行点击 3.直接点击下载.可以进入保存界面,进行保存即可下载,后续安装 4.鼠标放在Downloads显示平台和版本选择界面,点击Windows,进入wi…

【备战算法岗】—— 控制模块复习(持续更新!!!)

1 控制理论基础 1.1 控制模块概述 输入:轨迹线Reference、地图信息、定位信息、车辆反馈信息 输出:刹车、油门、转向 CANBUS:车辆底盘交互协议 参考博客:Apollo CANBUS模块解析 apollo:canbus模块(1&…

【超萌二次元动漫个人主页HTML源码】

效果图 部分代码 index.htnl <!DOCTYPE HTML> <html> <head> <title>个人主页介绍页</title> <meta name"keywords" content"孤客个人主页介绍页"> <meta name"description" content"孤客个…