自定义博客皮肤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)
  • 收藏
  • 关注

原创 代码随想录算法训练营07 | 55.右旋字符串、151.反转字符串、54.替换数字、541.反转字符串||

在字符串中,将数字换位number,那么就要考虑一个问题,字符串在变换完之后,长度会变化,可不是在原来那个位置,一下放了number这6个字符。题目的意思是,给定一个字符串,然后,以2k的长度往后移动,如果还能移动2k的长度,就将这2k的前k个字符交换位置,如果移动不了就看看剩下的还有多少位,如果剩下的小于k位,那就将这k位全部交换位置,如果大于k小于2k,那就将前k位的交换位置。这里卡哥给出了一个很聪明的想法,就是在删除多余的空格之后,首先将字符串全部反转,然后再对单个单词进行反转,从而就实现了目标。

2024-03-13 21:42:21 285

原创 代码随想录算法训练营06 | 15.三数之和、454.四数相加||、18.四数相加、383.赎金信

四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n。原理就是,先固定一个i从数组(排过序的)的左边开始遍历,保证不要发生重复,然后定义两个指针,一个从紧挨着i开始,一个从数组的最右侧开始,求三个数的和,如果符合要求就保存,不符合就继续往下遍历。就返回了,三数之和 可以通过。

2024-03-13 12:45:39 368

原创 代码随想录算法训练营05 | 1.两数之和、202.快乐数、349.两个数组的交集、242.有效的字母异位词

代码随想录给出的代码有一点很值得学习一下:先将第一个字符串的字母统计到一个数组中,然后,在统计第二个字符串的时候,在原来的那个数组中做减法,那样只需要一个数组,在之后只需要统计,数组里是否有比0小的数,只要有就输出false!本题呢,我就需要一个集合来存放我们遍历过的元素,然后在遍历数组的时候去询问这个集合,某元素是否遍历过,也就是 是否出现在这个集合。按照代码随想录上的后记,立扣改了题目描述和后台测试数据,增添了数值的范围,所以使用数组也是可以的,那么就可以对上述的代码进行简单的修改。

2024-03-12 10:54:43 602 1

原创 代码随想录算法训练营04 | 206.反转链表、24.两两交换链表中的节点、142.环形链表||、面试题02.07.链表相交

自己的疑惑是,可能slow已经走了好几圈了,然后俩才相遇,结合代码随想录上的描述,简要提醒自己一下:在得出slow到达环口,fast必定在环内的结论后,下面的那个图的分析,意义就是判定,在slow没走完那一圈之前,fast就可以与它完成相遇(slow与fast,只有在同时到达环口的时候,slow才有机会在刚好走完一圈的时候与fast相遇,那么,既然fast已经在环内了,那么fast必定会在slow未完成一圈的情况下与fast相遇)这个算法中,值得学习的是,设置了快慢指针,然后让快指针先走。

2024-03-11 16:03:38 363 1

原创 代码随想录算法训练营03 | 203.移除链表元素、707.设计链表、206.反转链表

然后写每步需要执行的内容,每步需要使用temp接收current结点的指针指向,接收之后修改current结点的指针指向,最后再次调用递归函数,完成pre = cur;创建一个虚拟的头结点,然后让头结点指向现实的头结点,之后,再创建一个用于循环的ListNode类型指针,去进行遍历,如果找到要删去的val,那就创建一个临时指针,然后承接需要删去的结点的地址,移动上一个结点的指向,再把这个tmp清空。所以打的时候,还是需要小心的,添上分号之后就好了。或者将这个类内的结构,转移到类的外部,也是可以的。

2024-03-10 23:15:18 226

原创 代码随想录算法训练营02 | 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵

因为,第一层循环是确定到底要进行多少次这样的排序,第二层才是实际进行排序的,从第一个数开始,与相邻的第二个数开始比较大小,是否交换位置……那么滑动窗口的想法就很不错,先是终止下标往右滑动,寻找sum大于等于target的数组,如果符合了,再让起始下标开始往右移动,寻找最短的子数组。还有一点值的学习,据时result的这个设置,先给其赋予一个最大值,然后在所有可能的长度选择中,逐一的挑选出一个最短的值来接替!然后选择大的放在新的数组里,稍微难的是,在下标变化的时候,仔细判断到底是怎么个变化法。

2024-03-07 20:03:13 342

原创 代码随想录算法训练营01 | 704.二分查找、27.移除元素

break;end += 1;break;写的没啥毛病,就是太慢了存在一个问题,最开始写的代码中,在return语句中,你尝试返回一个匿名数组,但是 C++ 中并不支持这种语法。如果你想返回一个包含start和end的向量,应该声明一个类型的变量,并将start和end添加到该向量中,然后返回该向量。在return。

2024-03-06 13:34:42 385 1

空空如也

空空如也

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

TA关注的人

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