- 博客(9)
- 收藏
- 关注
原创 算法训练营Day5|LeetCode242 有效的字母异位词、LeetCode19 删除链表的倒数第N个节点
这道题用暴力的解法时间复杂度是O(n^2),那来看看使用哈希法进一步优化。那么用数组来做哈希表也是不错的选择;但是要注意,使用数组来做哈希的题目,是因为题目限制了数组的大小。而这道题目没有限制数值的大小,就无法使用数组来做哈希表。2、需要定义一个多大的数组呢,定一个数组叫做record,大小为26 就可以了,初始化为0,因为字符a到字符z的ASCII也是26个连续的数值。1、数组其实就是一个简单的哈希表,而且这道题目中字符串只有小写字符,那么就可以定义一个数组,来记录字符串s里字符出现的次数。
2023-02-07 01:08:31
159
原创 算法训练营Day4|LeetCode24 两两交换链表中的节点、LeetCode19 删除链表的倒数第N个节点
1、使用虚拟头结点,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要单独处理。接下来就是交换相邻两个元素了。1、使用虚拟头结点,这样方便处理删除实际头结点的逻辑;二、LeetCode19 删除链表的倒数第N个节点。一、LeetCode24 两两交换链表中的节点。
2023-02-05 17:58:54
119
原创 算法训练营Day3|LeetCode203 移除链表元素、LeetCode707 设计链表、LeetCode206 反转链表(附加链表里理论基础)
(一):直接使用原来的链表进行删除操作:删除头结点,直接将头节点指向后一位即可(将原来的头节点内存删除)。删除非头节点,找到要删除节点的前一节点,使前一节点的指向为下下节点,再将删除节点释放内存(cur->next = cur->next->next)。什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。
2023-02-03 23:27:58
122
原创 算法训练营Day2|LeetCode977 有序数组的平方、LeetCode209 长度最小的子数组、LeetCode977 有序数组的平方、LeetCode59 螺旋矩阵Ⅱ
由于题目中说明该数组的元素顺序的是“非递减顺序”,因此该数组平方后的最大值要么在最左端,要么就在最右端,因此只需要放置两个指针在数组的头尾两端进行平方,两端比较之后,在赋值给新数组result即可(其中定义一个K在数组的最右端进行K--,将比较的结果从大到小依次放置即可)1)startx、starty:作为其实位置,根据不同的n变化(0,0)-> (1,1) -> (2,2) 等等。1、由二分法找出循环不变量,本题中的循环不变量为循环长度的左闭右开区间。2)loop:循环的圈数,由n决定(n/2)。
2023-02-02 21:38:31
182
原创 算法训练营Day1|LeetCode704 二分查找、LeetCode27 移除元素
因为数据与结构算法学的不好,第一眼看的毫无思路,希望后续逐渐的刷题中能够提高自己的水平。因为数据与结构算法学的不好,第一眼看的毫无思路,希望后续逐渐的刷题中能够提高自己的水平。二、LeetCode27 移除元素。一、Leetcode 二分查找。
2023-02-01 00:00:53
293
1
原创 C++ --- Const修饰指针产生的类别
本文指在大家学习C++的过程中明白const在指针中的应用,以及分清楚常量指针和指针常量有什么区别以及各自的特点,并分享它们的记忆方法。
2022-07-21 16:56:50
375
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人