当前位置: 首页 > news >正文

代码随想录训练营一刷总结|

分为几个大部分:

  • 数组 

最先接触的部分,虽然说感觉是最简单的,但是需要掌握好基础,特别是小心循环。这里面需要再仔细看的就是螺旋矩阵那一块,其他的在后续刷的时候能用一种方法一次a就行。

  • 链表 

需要注意链表的基础概念以及链表的初始化代码。单链表、双链表的区别和写法(一般是用的单链表)。

一类难度:链表的基本操作

二类难度:链表相交,环形链表

  • 哈希表 

哈希表的底层逻辑很重要,尝试去看红黑树了,找了好几个博客和视频。。没看懂呜呜呜,越看越烦,选择放一下,之后再来补。

需要注意:Map,Tree,Set这三类分别怎么用,以及有什么特点,需要在什么场景使用。

  • 字符串

字符串的话需要了解区分字符串和字符数组的转换区别,有很多常用的方法比如subString啥的都还不是很熟悉,不会马上想到,需要再提升熟悉度吧。

  • 双指针法 

双指针法就是一种常用方法了,之前说到的几大部分其实都有用过。双指针的快慢指针,左右指针,甚至说滑动窗口,都需要很熟悉,看到题就要想到是否可以用双指针。

做了一些题感觉下来,双指针不一定是复杂度最低的,但一定是最好理解的。

  • 栈与队列 

首先就是栈和队列的基础理论,注意区别,以及queue和deque的一些常用方法。

这一块属于是看着解析会,但是自己想不到的那部分,还需要再看看。

  • 二叉树 

二叉树真的好难。。。。光理解都有点费劲了,慢慢看能看懂,但是一晃神,就突然看不懂了。。。

理论基础首先是必要的,其次很重要的就是迭代遍历的三种方法。最开始看的时候很好理解,但是一旦到了具体场景,就会有点蒙,到底选哪一个合适。

感觉把遍历条件和怎么遍历搞清楚,基本的二叉树问题就已经解决了一大半了。

到之后的二叉搜索树部分,还是老规矩,理论基础+遍历方式,再结合题目条件。这部分肯定是要从头再来一次的,其他部分基本是边跟边在复习,只有这个板块,我是被恶心的学到后面都不想去看前面了。。。这个之后还是得忍着恶心从头再刷一遍。

  • 回溯算法 

回溯算法主要就是需要把整个过程分析清楚,多做做,熟悉了就好。

void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理结果}
}
  • 贪心算法 

这个就很像小时候玩的逻辑题,局部最优推出全局最优,这句话就很关键。主要就是看给出的局部最优是否有漏洞,没有基本就万事大吉,可以按照那个思路进行推进。

难点在于思考情况,往往自己那道题可能就是思路乱成一团,能通过分类把具体情况清理出来的能力真的很重要。

  • 动态规划 

这个是最开始报训练营之前第一个接触的板块(也是不知道怎么那么自信前面直接跳过。。。),有点难想,特别是背包问题那块,想了好久。后续都还跟的可以,其实和贪心很像,也是分类情况,找递归,最后只不过是得出很多情况中的最优的一个。

  • 单调栈

使用单调栈就需要明确栈的原理以及单调栈的本质还有流程。

在使用单调栈的时候首先要明确如下几点:

1、单调栈里存放的元素是什么?

单调栈里只需要存放元素的下标i就可以了,如果需要使用对应的元素,直接T[i]就可以获取。

2、单调栈里元素是递增呢? 还是递减呢?

注意一下顺序为 从栈头到栈底的顺序

这个就需要在题中具体去分析,不过感觉能用单调栈的题目,那用它对应的双指针或者动态规划还更好理解一些,后续需要再看看吧。

熟悉掌握度优先级:

比较熟练:数组,链表,哈希表,字符串,双指针,栈与队列

一般熟练:回溯,贪心,动态规划

不熟练:二叉树,单调栈

http://www.lryc.cn/news/2098.html

相关文章:

  • CSS中的几种尺寸单位
  • 运维必会:ansible剧本(piaybook)
  • 活动星投票午间修身自习室制作在线投票投票制作网页
  • C#泛型:高级静态语言的效率利器
  • 澳大利亚访问学者申请流程总结
  • cookie和Session的作用和比较
  • 测试员都是背锅侠?测试人员避“锅”攻略,拿走不谢
  • C++: C++模板<template>
  • chmod命令详解
  • 状态机设计中的关键技术
  • 单片机开发---ESP32S3移植NES模拟器(二)
  • 微信小程序nodej‘s+vue警局便民服务管理系统
  • 第18章 MongoDB $type 操作符教程
  • 【MySQL主从复制】快速配置
  • Typescript - interface 关键字(通俗易懂的详细教程)
  • 【计组】内存和总线
  • CUDA中的数学方法
  • Elasticsearch基本概念和索引原理
  • 《NFL橄榄球》:堪萨斯城酋长·橄榄1号位
  • python+django在线教学网上授课系统vue
  • 二叉搜索树之AVL树
  • 全栈自动化测试技术笔记(二):准备工作的切入点
  • 57 长短期记忆网络(LSTM)【动手学深度学习v2】
  • 算法第十五期——动态规划(DP)之各种背包问题
  • 实现复选框全选和全不选的切换
  • React hooks之useState用法(一)
  • spring的简单理解
  • Docker调用Intel集显实现FFmpeg硬解码
  • 端到端模型(end-to-end)与非端到端模型
  • uniApp封装一个滑块组件