- 博客(8)
- 收藏
- 关注
原创 算法训练营Day08-字符串Part01
每2k个元素反转前k个。注意判断 索引i和个数之间的关系,(举例子找规律)。整体代码太冗长了,只想着将题目完成,没有考虑代码的简介。遍历之前先判断 ”总字符个数“ 是否符合 k的剩余条件。反转之后判断剩下的 字符个数 是否符合 k的剩余条件。left指向头,right指向末尾。先自己写好区间reverse的函数代码。函数,是左闭右开区间。
2025-01-01 21:54:49
210
原创 算法训练营Day07-哈希Part02
三数之和“是先确定一个a,再找b和c;而”四数之和“是先确定a、b再找c、d。找的过程和之前一样,先排序,再用left和right指针。思路:先用i确定一个元素a,再在剩下的序列中找出b、c。可以先将序列排序,有序序列查找的方法可以采取类似”二分查找“的思路。自己实现:跟三数之和j基本一样的思路,多了一层循环k。比起代码随想录少了很多剪枝操作。找出 a + b + c = 0,且a、b、c不是同一个元素(可以值相同)找出 a + b + c = 0。
2025-01-01 14:13:21
262
原创 算法训练营Day06-哈希Part01
巧妙的使用set去存放出现过的sum,当sum再次出现是时候就说明已经进入了死循环,可以返回false。字母异位词:是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。再减去用t的字符出现的次数。如果最终都为record内容都为0即为“异位词”将map中存放的键值对反过来:key存放nums[i], value存放i。也就是字符串s和t,所包含的字母相同,只是排列方式不同。数组的索引表示s中字符。数组内存放的值为s中出现次数。//返回键为key的迭代器。//表示未找到相应的key。
2024-12-30 22:51:50
431
原创 算法训练营Day04-链表Part02
y :相交结点与环入口的前半段距离。z :相交结点与环入口的后半段距离。,快慢指针一定会在环内相遇。x :头结点到环入口的距离。从快慢相遇结点出发,
2024-12-29 18:45:24
821
原创 算法训练营Day03-链表Part01
LinkedNode(int val):val(val), next(nullptr){} //默认构造函数//先把结点定义好MyLinkedList() { //构造函数的定义_size = 0;...private: //私有变量的定义int _size;//_size 表示总共节点个数(不包括虚拟头结点)//要在节点定义的后面才能有虚拟头结点的定义。
2024-12-28 19:56:55
355
原创 算法训练营Day02-数组Part02
自己的解法:一前一后两个指针,扫描整个数组。tips:注意最后取值的处理和边界的处理,耗费了不少时间。 跟自己没看答案写的方法差不多(一年前写过70道随想录,感觉是冥冥之中就用了这个方法。 还是要学习一下对于答案确定的处理,这里就比我自己写一个if else 高明多了。ps:本题运用”前缀和“思想后自己写出的,可能与代码随想录有差异。很有意思的题目,学到了可以用前缀和的形式去很快的计算区间和。通过上一题的”前缀和“思想,可以更方便的解决这道题。##59、螺旋矩阵II。上->右->下->左。
2024-12-28 13:30:23
461
原创 算法训练营Day01-数组Part01
对于一个”有正负递增“的数组,元素取平方后都为正。且以0值为基准,正值元素和负值元素之间没有什么很好的规律性。自己的暴力解法:最暴力的一集,未看答案使用暴力解法:直接开辟一个新vector,遍历nums一个一个加进去。两个指针明面上都是直接对nums数组进行访问,但是由于不开辟新数组,因此都有各自的新含义。随想录的暴力解法:没次找到符合条件的元素后,对后面的元素进行遍历前移。本人自己写虽然用了双指针,但感觉也仅仅只是减少了开辟数组的开销。 开辟新数组,用k指向末尾元素,从最大开始比较。
2024-12-26 23:55:24
390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅