自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录day10,day12:栈与队列

赶进度一天就结束了,来用自己的话总结一下。

2024-07-09 23:17:16 506

原创 代码随想录第九天:字符串与KMP算法

Day9…救命啊!!!151.翻转字符串里的单词给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出: "blue is sky the"用python的split是很简单的好的,再次简单地有点罪恶,那来按照“不要使用辅助空间,空间复杂度要求为O(1)。”来写一下吧,python字符串是不可变的,那就转化成数组实验一下,下面这个方法其实很慢,但是当作代码练习了右旋字符串字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。

2024-07-09 23:06:39 818

原创 代码随想录第八条:344.反转字符串、541. 反转字符串II、替换数字

因为python中的字符串是不可变的类型,一旦创建,就无法在原地进行修改,如果修改了其内容(切片、修改等)实际上在内存中的地址就已经改变了。但是如果以k为步长,那么会导致还是需要上文的n来控制是否翻转,有点麻烦,索性以2k为步长,然后翻转前k个元素。给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。切片越界是合法的,但是直接使用索引查找不合法,如len(a)=2,a【5】是不合法的,a【0:5】是合法的。详细机制在这里有介绍。

2024-06-15 02:04:27 293

原创 代码随想录第七天:第454题.四数相加II、383. 赎金信、第15题. 三数之和、第18题. 四数之和

容易错误的是剪枝1和剪枝2的变化,在三数之和中这里剪枝的依据是target为0,如果最小的数都大于0了,那么再怎么加数字都计算不出结果了。找出所有满足条件且不重复的四元组。如果只用一个数组存储,遍历计算a+b是存进结果,遍历计算c+d时进行比较和结果的处理,即省去了一个变量的同时,也省去了上文遍历字典ab、cd的过程。区别可以看图,很明显,题解(第二种)的解法要更好一些,因为第一种方法中,每一次都要对整个数组长度的内容进行搜索,而题解方法每次搜索的范围都在减少,也便于在最小的数大于0时对其进行剪枝。

2024-06-14 00:45:51 463

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

还有一种想法思路是,相加求值,最可能的是一个大的值和一个小的值,那么先将数据排序(这里可以删去大于数组中大于target的数进一步减少时间),然后头尾设置指针,让最小的数加最大的数,如果相加小于target,头指针向后移动一步;如果涉及的是unicode编码,那使用ord也是有效的,但是当unicode的编码太大的时候(到万这样),要么数组大到管够,要么数组长度不够大使得碰撞的发生不可避免,再进行线性寻址什么都就很复杂,那还是用python字典吧……好的,不用集合运算,用哈希表的思想写一次吧。

2024-06-11 03:43:43 640

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

两个链表首先要做的是对其末尾,然后使得AB都从对齐尾部的头指针开始遍历,这样才能通过“==”找到相交的节点。过程中需要注意是虚拟头指针的处理(长的链表在知道短链表的长度n之后,跟上题找到倒数第n个是同一个思路。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。上面的方法遍历了三次链表,一次短一次长一次短。如果有环,如何找到这个环的入口。

2024-06-10 03:17:20 274

原创 代码随想录第三天:203.移除链表元素、707.设计链表、206.反转链表

今天太累了,题目就不自己想了,跟着过一次然后标记一下容易理解错的地方。画个图自行理解一下翻转的过程就好,递归明天回来补吧。主要是注意记得更新虚拟头指针。DAY3 用时1.5h。画框的位置是需要注意的。

2024-06-08 02:48:04 190

原创 代码随想录第二天:977. 有序数组的平方、209.长度最小的子数组、59. 螺旋矩阵 II

发现很多时候被问题卡住都是因为边界条件没有控制好,然后就开始缝缝补补,尤其是在考虑数组问题的时候(只有一个数怎么办,超出范围怎么办……但实际上真正能解决问题的方法一定是普遍的不需要缝缝补补太多的。给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。实际上一开始数据就是非递减的,有正数有负数,那么要取平方后最大的数值,要么是原数组第一个要么是最后一个,于是希望使用双指针方法。然后发现有一个数组很长、数很大的测试用例,然后就超出时间了。

2024-06-07 00:05:01 337

原创 代码打卡第一天:二分查找、移除元素

2024-06-06 00:55:03 120

空空如也

空空如也

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

TA关注的人

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