自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录第 6 天 - 454 四数相加 II & 383 赎金信 & 15 三数之和 & 18 四数之和

这道题最直观的就是四层 for 循环,但仔细观察一下,他只问的是组成四数之和的不同的下标组数。可以考虑用分组,两两 for 循环。空间复杂度:O(n^2) :也就是哈希表所占用的空间。本题最坏条件下,两个数组的数和都不同,就会有 n * n 个数加入哈希表。开始排序,遍历一个下标,剩下两个数用双指针,结果成了!刚做这道题的时候有点先入为主,想当然以为这道题要用哈希表,但感觉会实在很麻烦,便开始想新思路。,需要对 a,b,c 分别去重。由题意 i,j,k 不能相等可得知,三个下标不能相同。

2024-06-28 23:53:23 1142

原创 代码随想录第 5 天 - 242 有效的字母异位词 & 349 两个数组的交集 & 202 快乐数 & 1 两数之和

空间复杂度:O(n):int[26] 数组是固定大小的,所以是O(1)。但是这里使用了 toCharArray() 创建了一个 char 数组,所以空间又变为 O(n) 了。但其实,无限循环就代表了肯定是一直在重复,这样我们每次都收集结果,当开始出现重复时,就返回 false 好了。时间复杂度:O(m + n):遍历了 s 和 t 两个字符串。空间复杂度:O(m + n):空间复杂度取决于两个 set 的大小。时间复杂度:O(m + n) :时间复杂度就是遍历两个数组的时间。空间复杂度:O(n)

2024-06-26 22:34:44 1631

原创 代码随想录第 4 天 - 24 两两交换链表中的节点 & 19 删除链表的倒数第N个节点 & 02.07 链表相交 & 142 环形链表 II

将两条链表拉直,如果长度不一致,则交点至少是从较短链表的头节点开始。所以可以先将长链表节点遍历到较短链表头节点的长度位置。然后二者再一起向后遍历,如果二者相等则说明相交,直接返回。让快指针先走 n 步或 n + 1 步(取决于你终止条件怎么写),然后快慢指针一起走。时间复杂度:O(n + m):链表A + 链表B 的长度。时间复杂度:O(n):操作 n 个节点。空间复杂度:O(n):递归栈深度为 n。时间复杂度:O(n):操作 n 个节点。空间复杂度:O(1)时间复杂度:O(n)时间复杂度:O(n)

2024-06-25 23:41:09 821

原创 代码随想录第 3 天 - 203 移除链表元素 & 707 设计链表 & 206 反转链表

没想到设计链表竟然做了这么久,之前又是想着用 Map 又是用链表的,有两个参数可以建立 ListNode 和 index 映射的,然后每次添加删除都刷新一下映射。却忘记了可以用最朴素的方式找到需要操作的节点🥲。核心在于记住添加和删除节点都要获取该节点的前一个。本来是移 index - 1,现在变成了移 index 次。看到要删除节点,就知道要先获取待删除节点的前一个节点进行操作。因为头节点也有可能被删除,所以设置一个 dummyHead 进行连接,可以对链表节点做一致的操作。空间复杂度:O(1)

2024-06-25 00:58:50 243

原创 代码随想录第 2 天 - 977 有序数组的平方(双指针) & 209 长度最小的子数组(滑动窗口) & 59 螺旋矩阵II(模拟)

首先审题,题中描述是一个有序数组,数组中可能存在负数和正数,返回值是按照数的平方按非递减排序的数组。这里时间复杂度为 O(n) 的原因是,我们不能仅通过循环嵌套循环就断定为 O(n^2)。在此题中,数组中每个元素都被操作过两次,一次作为终止位置累加,一次作为起始位置累减。因此时间复杂度应是 O(2n) => O(n)。所谓滑动窗口,就是不断的调节子数组的起始位置和终止位置,从而得出我们要想的结果。因为要填充 n*n 的数组,所以时间复杂度为 O(n^2);除了返回的矩阵以外,空间复杂度为 O(1)。

2024-06-23 16:54:06 501

原创 代码随想录第 1 天 - 704 二分查找 & 27 移除元素(双指针)

常用于数组,链表和字符串操作题中。通过定义两个指针,在一次for循环遍历中完成两个for循环的操作。双指针做一次忘一次,今天做的时候又没整出来🤯。时间复杂度:O(logn)空间复杂度:O(1)时间复杂度:O(n)空间复杂度:O(1)

2024-06-22 19:42:33 295 1

空空如也

空空如也

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

TA关注的人

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