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

原创 算法训练营Day05

哈希表在数组中的应用字符a到字符z的ASCII是26个连续的数值,所以字符a映射为下标0,相应的字符z映射为下标25并不需要记住字符a的ASCII,只要求出一个相对数值就可以了, 差值是从0到25不需要分别统计s和t中各字符,记录一个+1,另一个-1,最后判断是否全为0,更简便时间复杂度为O(n),空间上因为定义了一个常量大小的辅助数组,所以空间复杂度为O(1)class Solution: def isAnagram(self, s: str, t: str) -> bool:

2023-07-31 23:39:58 34 1

原创 算法训练营Day04

因为slow进环时,fast已在环内,在slow走一圈的时间里,fast已走出两圈的长度,所以一定会中途相遇并超过slow)时间复杂度: O(n),快慢指针相遇前,指针走的次数小于链表长度,快慢指针相遇后,两个index指针走的次数也小于链表长度,总体为走的次数小于 2n。设置快慢指针,fast每次移动2个结点,slow每次移动1个结点,若两者可以相遇,则一定有环;若n>1, 则表示index2 在环里多走了(n-1)圈,但依旧是在环入口结点处相遇,判断条件是一样的。如果链表无环,则返回 null。

2023-07-31 02:57:52 23 1

原创 算法训练营Day3

示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]#for i in range(index-1):不能是-1 因为当index=0时报错。非头:设置curr = head, curr->next = curr->next->next。temp = cur.next #先存储下来cur.next。示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]示例 2: 输入:head = [], val = 1 输出:[]

2023-07-29 23:21:44 32

原创 算法训练营Day2

此题巧妙处在于如何实现时间复杂度为O(n):通过每个元素只被遍历一次,即元素先通过右指针进一次,后通过左指针出一次。注意到给的数组是按非递减顺序的已排序数组,数字有正有负,故平方后,两端较大,中间较小。定义一个新数组result,和原数组一样的大小,让k指向result数组终止位置。可以用sort:nums.sort() 或 sorted() ,注意区别。另外注意,min_len通过min()的更新,curr_sum的累加,尤其。时间复杂度是O(n^2)。,内层循环是左指针,指向起始位置。

2023-07-27 22:18:29 27 1

原创 代码随想录算法训练营D1

因为要兼顾写论文和秋招,时间不多,所以计划全部采取先看题目思考后,直接看视频讲解,再自己写代码的过程。双指针法第一次听,很不错。左闭右闭、左闭右开,两种写法掌握。以后要关注时间复杂度和空间复杂度。

2023-07-27 07:33:03 45

空空如也

空空如也

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

TA关注的人

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