- 博客(4)
- 收藏
- 关注
原创 Day 04 继续链表
这题采用了虚拟头节点,是因为在交换头节点和头节点的下一个节点时头节点会变,使用虚拟头节点就避免头节点变化导致的多余代码。这题的思想是,记录一下p节点前的节点pre和下一个节点q 交换就是将q节点的下一个节点赋给q,而将q赋给pre.next 将q的next再指向p即可。这个时候p将会作为第二个节点。所以当我们记录p指针位置为下一个交换的pre,将p指针指向next 一次交换就结束了。
2023-08-13 23:24:43 35 1
原创 Day03 链表算法题的开始
移除链表元素和设计链表都没啥问题,反而是这个反转链表之前做过没有理解,今天再次做的时候就找不到北了,做出来的时从后往前反转的,时间复杂度高了且更麻烦,需要特殊记忆一下。
2023-08-11 21:18:50 122
原创 Day02 有序数组的平方和螺旋矩阵
从二分查找,双指针原地删除,有序数组的平方,螺旋矩阵中可以提炼出的思想是:考虑数组题,在其中遍历,修改,一定要考虑到数组边界和填充方法还有是原地修改还是创建新数组等等。
2023-08-10 22:05:14 336 1
原创 Day01 双指针和二分查找
双指针法删除数组的数据,这是一个经典题,其要求不能开辟新的数组而是原地删除。其实本质上这个题的思路和开辟新数组是一样的,只是这个新数组在原地罢了。使用i指针来进行遍历,j指针进行更新,通过遇到不等于val的数据就更新,遇到等于val的就跳过。实质上在原数组上创建了一个新的数组,将原数组的不为val的元素按顺序更新到了“新数组”上。二分查找其需要数组呈现递增(或者递减)。利用递增数组的规律性,使得本来暴力遍历数组找数据的O(n)的时间复杂度降低到了O(log2n)。即每次只找一半的数组。
2023-08-09 17:29:14 466 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人