自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 代码随想录算法训练营第八天打卡| 151.翻转字符串里的单词 卡码网:55.右旋转字符串 28. 实现 strStr() 459.重复的子字符串

这里看到一定会想到这里是不是每个字母后都加了一个空格了,其实不然,这里的判断都是在一个单词打印完之后进行的判断,原因在于后面的while循环一次性打印完一个单词之后,才会结束整个for循环的一个循环,并且无论是for循环还是while循环,两者都对 i 有 加操作。,最终主函数里的for循环结束的条件是 i <= s.size(),因为后面每个单词的翻转都要到单词后一位再减一,详情看题解。前阵子实习项目任务繁重,加上本人惰性,一直未打卡,现在实习结束,开始补天。另一个需要注意的点使,在。

2024-07-22 20:08:02 216

原创 代码随想录算法训练营第七天打卡| 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字

其实在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。一些同学可能为了处理逻辑:每隔2k个字符的前k的字符,写了一堆逻辑代码或者再搞一个计数器,来统计2k,再统计前k个字符。从前向后填充就是O(n^2)的算法了,因为每次添加元素都要将添加元素之后的所有元素整体向后移动。这一题有两个需要注意的点,一个是将数字替换成number后,整个数组的。因为要找的也就是每2 * k 区间的起点,这样写,程序会高效很多。第二个就是改变数组的操作要。

2024-07-11 21:39:07 226

原创 代码随想录算法训练营第六天打卡| 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

这一题一共有四个数组,要想在四个数组中分别找到一个数字满足四个数字之和为零,单纯的四个for循环时间复杂度为n^4,而使用哈希法的map,将四个数组两两为一组,分为a+b和c+d,用key值记录满足(a+b)+(c+d)=0条件的(a+b)和(c+d)是否出现,用value记录出现的次数。这里再注意一个点,到c+d遍历循环时,我们要在map中找的是等于0-(c+d)的值,因为a+b+c+d=0,所以0-(c+d)=(a+b),在之前a+b遍历循环时,map储存的是(a+b)的值。这个题涉及一个概念——

2024-07-10 22:14:07 1187

原创 代码随想录算法训练营第五天打卡| 哈希表理论基础 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

这个迭代器并不指向任何实际的元素,而是表示容器的结束位置,用于遍历或检查元素是否存在。是一个非成员函数,它不修改容器的状态,也不消耗额外的资源。它是容器迭代器的一个重要组成部分,用于表示容器的逻辑结束点。拉链法就是要选择适当的哈希表的大小,这样既不会因为数组空值而浪费大量内存,也不会因为链表太长而在查找上浪费太多时间。,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。用unordered_set,本身数值是不重复的,在这一题中用它可以去重。常见的三种哈希结构,数组,集合和映射。

2024-07-08 22:23:12 1174 1

原创 代码随想录算法训练营第三天打卡| 203.移除链表元素 707.设计链表 206.反转链表

然后就是我认为我在写这道题时所遇到的难点,这里不仅用到了虚拟头节点,还定义了一个current的链表节点,用来遍历整个链表,并将每个节点的值与实际要删除的值进行比较。这里对于current节点,我定义了 current->next = head->next这里定义错了,首先要知道,对于删除一个链表节点,就是将该节点的上一个节点的指针指向该节点的下一个节点,所以必须要知道这两个节点的位置,所以应当定义为current = head,用current->next来指想要阅读的节点。203.移除链表元素。

2024-07-07 21:44:17 301

原创 代码随想录算法训练营第二天打卡| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

209.长度最小的子数组,滑动窗口,这里有该方法的思路,但是落实到实际去写代码,对于循环的条件理不清楚,并且怎么去移动前一个指针,以及用while还是if都不清楚,需要牢记!977.有序数组的平方,这一题的重点我觉得是在排序方法上,先抛开双指针法,排序方法需要重点总结!59.螺旋矩阵II ,这里的重点还是 循环不变量 问题,在这一题的应用中,主要使用左闭右开会更方便。主要在循环是也要注意循环的条件,以及最后n是奇数时最后一个值应该怎么处理。其次,双指针法在本题中是首尾双指针向里缩进。

2024-07-04 23:04:44 155

原创 代码随想录算法训练营第一天打卡| 704. 二分查找 27. 移除元素

需要两点注意的是正是第一种写法,我们定义 target 是在一个在左闭右闭的区间里,。区间的定义这就决定了二分法的代码应该如何写,如果说定义 target 是在一个在左闭右开的区间里,也就是[left, right) ,那么二分法的边界处理方式则截然不同。

2024-07-03 22:43:09 529

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除