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

原创 代码随想录算法训练营第八天 | 344.反转字符串,541. 反转字符串II,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

我们可以设置一个新的char数组,我们从右边开始遍历,如果遍历位置为空格,则继续向下移动,移动到不是空格的位置,将这个点记为单词的最右点,在向下遍历到为空格的位置,从这个位置的前一个点开始遍历到单词的最右点,将每个点的字母装入新的char数组中,然后循环遍历上面过程,最后将新的char数组转变为String输出。我们可以将字符串分为两个部分,要移往后面的部分和移往前面的部分,我们可以直接将两个部分内部反转,然后再将整个字符串全部反转过来。

2023-03-22 22:10:08 91

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

我可以将nums1[i] + nums2[j] 和nums3[k] + nums4[l]分开进行遍历,将nums1[i] + nums2[j] 放进map(key = nums1[i] + nums2[j] ,value = 出现的次数),然后遍历-(nums3[k] + nums4[l]),再在map中查找,在对查找出来的次数进行累加。与思路一不同,使用map的空间消耗要比数组大一些的,因为map要维护红黑树或者哈希表,而且还要做哈希函数,是费时的!数据量大的话就能体现出来差别了。

2023-03-21 21:35:10 180 7

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

然后再对s字符串进行遍历,与之匹配的索引的值加一,结束之后,在对t字符串进行遍历,与之匹配的索引的值减一,然后对数组进行遍历,如果存在索引值不等于0的,输出false。我们可以将创建一个map,key为字符,value为字符的个数,然后对s字符串进行遍历,添加至map中,在对t的字符串进行遍历,如果不存在就添加进去,value设为-1,存在就对该key的value-1,如果key对应的value出现了-1则直接输出false,然后在对整个map的value进行求和如果不等于0则false反之ture。

2023-03-20 20:08:45 173

原创 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点,19.删除链表的倒数第N个节点 ,面试题 02.07. 链表相交,142.环形链表II

快指针比慢指针速度快,慢指针在跑第一圈的时候,假设快指针没有相遇,并且快指针就在慢指针前面很短的距离(忽略不计),慢指针已经跑玩一圈(一圈常为x)的时候才追上,快指针的需要跑了 2x,才能重新追上,但是一圈只有x,如何在不经过慢指针的情况下,跑两圈,显然假设就不成立。我们将使用两指针(fast,slow),我们可以模拟倒数n,首先先让fast和slow距离n,当slow指针移动到最后一个节点,fastz指针则为倒数n的前一个节点。2.在进行指针移动的时候,需要注意cru,pre会移动到哪个节点上。

2023-03-18 18:28:15 118 1

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

双链表节点是由prev,data和next组成,prev储存的上一个节点的指针,data储存数据,next储存的下一个节点的指针。因为按第一种思路需要将头节点和非头结点分开进行删除,如果我加入一个虚拟的头节点,我们可以将头节点的删除合并到非头结点中。将index的上一个节点的next指向target,将target的next指向index节点。单链表节点是由data和next组成,data储存数据,next储存的下一个节点的指针。根据链表的性质,将val的上一个节点的指针赋予下一个节点。

2023-03-17 21:20:00 163

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

我们可以将指针放在左右两边,两边的数平方进行比较,将大的数放在另一个数组的最左边,然后将指针向中间移动。我们可以把看作一个矩阵,我们需要对每一个边按顺序进行赋值,赋值的同时我们需要对每个边的范围进行规定。这个条件我们可以使用滑动窗口来实现,就如一个可以收缩的框架,可以左右移动,大小可以改变。我们先对数组的数全部进行平方,然后在用Arrays.sort()对数组进行排序。起点位置:当窗口内的值大于等于s,窗口往前移(缩小窗口的大小)star:表示每圈开始赋值的x,y;结束位置:遍历数组的指针。

2023-03-16 16:27:21 284

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

左闭右闭:while( l

2023-03-15 18:34:29 333 1

空空如也

空空如也

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

TA关注的人

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