C++学习
文章平均质量分 63
根据代码随想录顺序在LeetCode上刷题的笔记记录
今天也还活着
努力学习~
展开
-
[C++学习] 哈希表 49.字母异位词分组 438.找到字符串中所有字母异位词 代码随想录 LeetCode题 代码 笔记
首先在字符串 s 中构造一个长度与字符串 p 的长度相同的滑动窗口,每次向后遍历时,退出窗口的前一个字母数量减一,新进入窗口的字母数量加一。比较窗口中每种字母的数量(snums)与字符串 p 中每种字母的数量(pnums),说明当前窗口为字符串 p 的异位词。利用哈希表存储每一组字母异位词,哈希表的 key 为一组字母异位词的标志,哈希表的value 为一组字母异位词列表。: 同一组字母异位词具有相同的字母,将排序后的字符串作为哈希表的key。: 同一组字母异位词具有相同数量的字母,将26个字母以。原创 2024-07-22 12:09:30 · 561 阅读 · 0 评论 -
[C++学习] 哈希表 242.有效的字母异位词 383. 赎金信 代码随想录 LeetCode题 代码 笔记
由于字符串长度相同,当 t 中出现新字母时,数组中记录该字母的个数将小于 0,此时不构成字母异位词。的 key 为26个字母,value 为字母出现的个数。在数据量大的情况下,利用数组更为简单高效,map 的空间消耗大,且做哈希函数是费时的。在代码随想录的介绍中, 哈希表是根据关键码的值而直接进行访问的数据结构,哈希法涉及三种数据结构,分别是。在这里,数组也可以理解成一种哈希表(下标为关键码),不严格区分定义。字符串 s 中不同字母出现的个数(nums[c-'a']++),再。二、LeetCode题。原创 2024-07-22 10:21:15 · 454 阅读 · 0 评论 -
[C++学习] 链表 相交链表 环形链表II 代码随想录 LeetCode题 代码 笔记
是一种基于哈希表的数据结构,用于存储不重复的元素,与 set(集合,一个内部自动有序且不含重复元素的容器)不同,unordered_set 不保证元素的有序性,但提供了更快的平均查找时间复杂度。利用哈希集合,判断节点是否已经被添加进哈希集合,若集合中存在该节点,则该节点为入环的第一个节点,返回该节点。求出两个链表的长度和差值,让 curA 移动到和 curB 末尾对齐的位置,比较链表内元素是否相等,若相等则为相交节点,返回该节点。该题目的求解有两种思路,一种是对齐链表后比较节点是否相等,一种是利用。原创 2024-07-17 17:57:54 · 453 阅读 · 0 评论 -
[C++学习] 链表 反转链表 两两交换链表中的节点 删除链表的倒数第N个节点 代码随想录 LeetCode题 代码 笔记
循环改变指针指向。最后返回 pre 指针,pre 为新的 head 节点。,最终 fast 指针指向 nullptr,slow 指针指向要删除结点的上一个节点。双指针法,快慢指针,slow 指针比 fast 指针。虚拟头节点 + 画图梳理操作先后顺序。本文根据代码随想录顺序刷题。双指针法,设置两个指针变量。三、LeetCode题。一、LeetCode题。二、LeetCode题。原创 2024-07-15 18:20:36 · 366 阅读 · 0 评论 -
[C++学习] 链表 移除链表元素 设计链表 代码随想录 LeetCode题 代码 笔记
用法:用来申请动态空间,返回类型为同变量类型的指针(在堆区开辟内存),需要手动 delete 释放。:设置一个虚拟头节点,作为新的头节点。这样在删除列表元素时,如果要删除的是头结点,不需要特殊处理。c++中,变量名加前缀 ‘_’ 是一种命名约定,用于区分类的成员变量与局部变量。的一些基础知识:链表的结点由两部分组成——数据域和指针域,指向下一个结点的地址。(关于头节点是否要存数据,力扣上的会存。来创建链表中的新结点,用来枚举结点的变量。包含了链表的常见操作,较为简单。存放结点要存储的数据,原创 2024-07-12 18:09:30 · 217 阅读 · 1 评论 -
[C++学习] 数组 模拟 螺旋矩阵 代码随想录 LeetCode题 代码 笔记
代表数组被赋值完成,则直接返回结果数据 res。当行数和列数都为奇数时,单独考虑中间元素。其余思路与上一道题类似,只需要反过来用矩阵元素给数组元素赋值。依次保存[1,2]、[3,4]、[5,6]、[7,8]至相应位置,最后单独保存中间元素[9],循环一圈的次数由。,并且为了避免重复赋值,数组溢出,在每层循环赋值时增加判断条件,若数组索引为。此部分的螺旋矩阵题不涉及具体的算法思想,只是模拟过程,考虑逻辑。,所以需要分别考虑,分别设置循环一圈的次数为。与上一道题不同的是,在此题中,一、LeetCode题。原创 2024-01-24 12:56:15 · 754 阅读 · 1 评论 -
[C++学习] 数组 滑动窗口 代码随想录 LeetCode题 代码 笔记
是 C++ 中的两个宏,代表了整型变量能够存储的最大正整数和最小负整数,分别为 2147483647 和 -2147483648,在头文件 <limits.h> 中定义。滑动窗口法:不断调节子序列的起始位置和终止位置,其实是双指针,但看起来像是一个窗口在不断滑动。若1为真,执行返回2,若1为假,执行返回3。满足其和大于等于目标值长度最小的连续子数组。遍历数组的指针 , 即for循环的索引。题目描述:总和大于等于,长度最小,本文根据代码随想录顺序刷题。一、LeetCode题。二、LeetCode题。原创 2024-01-23 21:57:07 · 518 阅读 · 1 评论 -
[C++学习] 数组 二分查找 代码随想录 LeetCode题 代码 笔记
题目描述:与上一道题目不同的是,结果只保留整数部分,利用二分查找法不一定找到一个整数的平方与目标值相等,只需要找到 mid*mid原创 2024-01-18 22:02:37 · 577 阅读 · 1 评论 -
[C++学习] 数组 移除元素 代码随想录 LeetCode题 代码 笔记
每次让两指针逆序地遍历两字符串,直到两字符串能够各自确定一个字符,然后将这两个字符进行比较。,当快指针指向元素为退格字符‘#’,慢指针减一,deleteString 函数返回处理完退格信息的字符串。题目描述:原数组是有序的,则数组平方的最大值只可能出现在原数组的两端,定义一个新数组逆序保存原数组。(优化,避免了需要保留元素的重复赋值):当左边的元素等于目标值时,用右边的元素覆盖。):指针1 和 指针2 都从头到尾,方向相同,但。扫描:指针1从头到尾,指针2从尾到头,在中间汇合。三、 LeetCode题。原创 2024-01-22 16:16:10 · 1049 阅读 · 0 评论