自定义博客皮肤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.左旋转字符串

以2k为一个区间,i每次加2k,判断i+k<s.size(),若小于,则直接反转字符串。将数组首先进行扩容到目标大小,随后用双指针的思路从后向前进行移动。交换字符串元素,考虑到left不能超过right,因此设置。由于字符串所占空间大小相同,不需要扩容,因此可以直接替换。从前向后填充就是O(n^2)的算法了,因为。‘^’指异或,相等时为0,不相等为1。为什么不从前向后移动?

2023-11-01 16:15:40 43 1

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

因为一旦是判断>=0,在执行第一次循环时,若出现重复字符,则会直接返回true,不会再继续遍历下去。:将三数相加,若小于0,则指针“left”前移,若大于0,则指针“right”后移;与三数之和不同的地方之处在于多了一个新的指针,要对新指针进行剪枝和去重,第一重剪枝,,再在容器中遍历是否含有target,若含有,计数器就会增加(a+b)出现的次数【首先将a数组和b数组进行组合即(a+b),存入map容器中,让。:将数组进行排序,若每个元素均大于0。,那么数组后面元素肯定不符合条件,直接break。

2023-10-17 22:20:10 60 1

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

由于unordered_set是不包含重复元素的,且set没有大小限制,因此当数据较多时,可以通过unordered_set建立哈希表,先将nums1的元素进行存储,再通过nums2遍历是否包含nums1的元素,若包含,则插入到result中,最后通过vector容器转换为数组。首先定义getSum函数,获取n的各个位数平方和,再定义集合,对sum的值进行判断,如果set集合中包含了该sum,则返回false,若不包含,则将sum的值插入set,然后将sum的值赋给n。

2023-10-17 20:36:13 43 1

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

定义快慢指针,让快指针每次向后移动两步,慢指针每次移动一步,找到快慢指针相遇的节点,重新定义指针index1在相遇的位置(index1 = fast),定义指针index2在头节点,然后让index1和index2同时向后移动,直到相遇。分别计算链表A和链表B的长度,保证让链表A的长度比链表B的长度长,计算两个链表的长度差,让链表A的curA指向链表B的头部,然后curA和curB再同时向后移动,找到相等的节点。

2023-10-14 22:39:01 147

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

双指针,定义pre,让cur指针指向pre,但是要用临时指针保存下一个节点。

2023-10-14 01:01:19 46 1

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

最大值肯定是在首部或者尾部,不可能在中间,因为采用双指针 i 和 j ,定义一个新数组result,和A数组一样的大小,让k指向result数组终止位置。如果 A[i] * A[i] < A[j] * A[j] 那么result[k–] = A[j] * A[j];如果A[i] * A[i] >= A[j] * A[j] 那么result[k–] = A[i] * A[i];时间复杂度O(n^2),空间复杂度:O(1),通过两层for循环。时间复杂度O(n),空间复杂度:O(1)。

2023-10-12 20:31:36 28

原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素、26. 删除排序数组中的重复项

由上面的指针指向第二个元素,下面的指针指向第一个元算,判断两数是否相等,若不相等,下指针向后移一位,nums[++bot] =nums[top],最终值返回bot+1。时间复杂度O(n^2),空间复杂度:O(1),通过两层for循环,一个for循环遍历数组元素 ,第二个for循环更新数组。时间复杂度O(n),空间复杂度:O(1),通过两层for循环,一个for循环遍历数组元素 ,第二个for循环更新数组。考虑数组是[left , right],还是[left, right),坚持。

2023-10-11 15:34:26 683

空空如也

空空如也

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

TA关注的人

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