自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

首先我们来分析一下这道题的做法,他有一个target,要找两个数值的话等于这个target,我们就将遍历过的数放进map里面,然后每当遍历一个数值时候,看target-目前的数值在map里面有没有,如果有的话,那就可以直接返回了,因为题目要求返回的是数组的下标,所以说就要用map的value 和 key,因为我们是要查找元素,然后返回下标,所以我们将key作为数组的元素,value作为数组的下标。哈希表有三种解法,一种是数组,一种是set(主要应对集合),一种是map(主要是映射)。

2023-07-20 00:59:47 66

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

判断有没有环的方法就是定义两个指针,看两个指针会不会有交点,如果有交点的话就说明这个是一个环形链表,定义一个快指针,一个慢指针,快指针的移动速度为2,慢指针的移动速度为1,这样的话他们的相对速度就是1,就不会越过而且会相遇。这一道题的话,就是得理解循环的条件,当下一个不为空而且下下个也不为空的时候才能进行链表的交换,注意还是得用虚拟头节点,感觉所有与链表有关的题,都要写上虚拟头节点,这个东西是超级无敌的好用,有着意想不到的结果,因为对一个结点进行删除或者增加的时候,一定要找到他的前一个结点,才能进行操作。

2023-07-18 18:56:04 47 1

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

这道题学了一个新的做法,就是创建一个虚拟的头节点,将原本的头节点的变成虚拟头节点的下一个结点,然后到最后的时候记得!递归的解法就是双指针解法的同理,一一对应的就是,双指针解法的话一个是指向头,一个指向头前面的那个NULL,在进行往后移动的时候,需要一个temp进行临时赋值。这道题话,用虚拟指针就是一个非常妙的一个方法了,他可以很好的帮助我们选择n个结点的前一个结点,非常的方便。这道题有一个注意的点就是,进行删除结点或者添加结点的时候,一个要注意删除或添加结点的顺序,可能就是代码顺序的关系,让指针指向空!

2023-07-18 01:45:35 71 1

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

这道题主要是一个思路的东西,螺旋矩阵既是围着一圈转,一定要注意定好边界,统一边界规则,都是左闭右开,这样的话才好处理起来。滑动窗口的思想嘞就是移动终点的值,寻找满足的子数组,然后再慢慢缩小头,这样的话一个for就够了,for里面放一个while,这样的话时间复杂度就是o(2*n)就是o(n)。这道题按照双指针的方法做,创建一个新的vector,建立一个头指针和一个尾指针,判断头指针的平方和尾指针的平方的大小,然后从新的vector里面的最后一个开始放最大的数值。209.长度最小的子数组。

2023-07-15 02:19:01 152 1

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

继续讲解这个这道方法,慢指针了就是输入新数组的值,快指针就是寻找能放进新数组的值快指针就做遍历,查找题目要移除的数值,让后就让slow赋值就行了,当然这里面的新旧数组其实都是在一个数组里面完成的,并不是真的创建一个新的数组,这样浪费了太多空间了,还有一个就是数组的空间并不是删除的,而是覆盖的,都是一些编辑器进行了覆盖的。如果两边都是闭区间的话,right就是nums.size()-1,因为已经是闭区间了,所以就是说这个值已经包含在内,就要选择下一个了,同理left的值也是这样分辨的。

2023-07-13 00:14:55 594 1

空空如也

空空如也

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

TA关注的人

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