随笔分类 - 代码随想录算法一刷
代码随想录 |栈与队列总结篇
摘要:##基础知识: 栈与队列都是容器接口,而非容器; 栈与队列可选容器,缺省状态下是deque; 提供push,pop等操作,但不提供送代器,不提供走访功能,因为只能在一边进行插入,弹出操作; 栈的经典题目 1.栈在系统方面有许多应用 Linux命令 cd/a/b/....运用栈的知识,确认进入了a目录
阅读全文
代码随想录day07|454.四数相加II; 383. 赎金信 ; 15. 三数之和 ; 18. 四数之和
摘要:##关键内容: 454.本题的思路在于分组,因为是几个不同数组的元素相加,所以将一部分数组分为一组,剩下的一组,第一组放入map,与第二组比较,进行后续操作;因此,本题为4个数组,实则3个之类的也可。同时注意map的key与val是什么,此题key是元素值,val是出现的次数(方便日后count的计
阅读全文
代码随想录day06 |242.有效的字母异位词 ;349. 两个数组的交集;202. 快乐数 ;1. 两数之和
摘要:##关键内容:哈希表,三种哈希结构 官方说法:哈希表是根据关键码的值而直接进行访问的数据结构。 用途:一般哈希表都是用来快速判断一个元素是否出现集合里。 哈希本质就是牺牲空间换取时间 三种常见哈希结构: 数组 set map 代码随想录中关于这三种结构的解读 242,使用了数组作为hash表,注意下
阅读全文
代码随想录day04|24. 两两交换链表中的节点; 19.删除链表的倒数第N个节点 ; 面试题 02.07. 链表相交 ; 142.环形链表II
摘要:24 19 0207 142 ##关键内容:双指针链表应用,空指针情况考虑 代码随想录相关总结 首先,还是那句话,链表的操作可以先设置一个虚拟头节点,也可以直接对原链表操作。这次刷题过程中学到了对于链表使用双指针的思路 其次,链表的题目画画图,想想清楚大致逻辑,即可。 24.想清楚了不难 class
阅读全文
代码随想录day03| 203.移除链表元素;707.设计链表;206.反转链表
摘要:##关键内容:链表基础;链表常见操作,虚拟头节点 常见链表大致分为:单链表,双链表,循环链表 关于链表的创建(可以用多个构造函数来初始化) struct ListNode { int val; // 节点上存储的元素 ListNode *next; // 指向下一个节点的指针 ListNode(in
阅读全文
代码随想录day01|26.删除重复项;27.移除元素;704.二分;844.含退格字符串
摘要:26 27; 704; 844 ##关键内容:数组;二分;快慢指针 首先,在面对数组时,我们必须清楚,数组中的元素在内存中是连续分布的,单独删除一个元素是不可实现的,所以当出现类似删除原数组元素之类的要求时(也可理解为在原数组上进行元素个数变化的操作),操作应为覆盖元素,这是十分基础的知识。 下面以
阅读全文