自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣系统刷题-树(一)

根据维基百科的定义:在计算机科学中,树(英语:tree)是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。每个节点都只有有限个子节点或无子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;树里面没有环路(cycle)

2024-08-14 22:15:22 1225

原创 力扣-240.搜索二维矩阵(2)

这道题的想法就是,整体遍历,在遇到比target还大的,就停止这行的遍历,然后转过去继续遍历下一行,如果有一行的开头大于target,直接返回false.ok,过了,今天OVER!

2024-08-07 22:19:27 303

原创 力扣-46.全排列

这道题目想了会,思路比较好想,但一直没调试成功,所以就参考了力扣官网的代码,积累一下回溯算法的实现和基本实现思路,即先试探后回溯,结果在下面~

2024-08-04 23:17:43 245

原创 力扣-41.缺失的第一个正数

做这道题有点投机取巧的感觉,要求时间复杂度O(N),且空间复杂度O(1),那么就是尽可能的去找到更多的可能性,来减少循环次数。首先想的就是将数组的重复值进行挑选,之后根据最大值最小值进行判断,如果最小值大于1或者最大值小于1,那么直接返回1,如果在剔除重复值后就数组长度等于最大值与最小值差加一,那么直接返回最大值加1.这些情况如果都不符合,那么只能从1开始遍历,查看每个数是否在该数组内了。实现了,结果还不错,看了下官方解答,并试着提交了一下,

2024-08-03 17:06:35 479

原创 力扣-200.岛屿数量

刷力扣热题–第二十四天:200.岛屿数量新手第二十四天 奋战敲代码,持之以恒,见证成长。

2024-08-02 17:19:18 406

原创 力扣-438.找到字符串中所有字母异位词

刷力扣热题–第二十三天:438.找到字符串中所有字母异位词菜鸟第二十三天开始奋战敲代码,持之以恒,见证成长。

2024-07-31 18:37:21 224

原创 力扣-138随机链表的复制+148.排序链表

(1)随机链表的复制(2)排序链表。

2024-07-29 15:56:15 291

原创 力扣-2.两数相加 + 24.两两交换链表中的节点

(1)两数相加(2)两两交换链表中的节点。

2024-07-28 23:30:28 156

原创 力扣-19. 删除链表的倒数第 N 个结点

先求出总体长度,之后根据总体长度判断倒数的位置是几,最终遍历出结果,即可.时间复杂度O(N),空间复杂度O(1)

2024-07-27 21:26:05 241

原创 力扣:238.除自身以外数组的乘积

类似于字典的思想,将中间结果保存,等到用的时候在提取,然后注意处理的就是0,如果数组中存在大于1个0,那么结果全部返回0就行,若只存在一个,那么只需要返回为0处其他部分的乘积,其余都为0.若不包含0,那么只需要求出总的乘积,再使用单个元素相除即可获得答案.时间复杂度O(N),空间复杂度O(N)

2024-07-24 12:43:48 192

原创 力扣-189:轮转数组

先用比较便捷的方法去做,即每次都向右移动1位,重复k次,时间复杂度O(M*N),空间复杂度O(1)好的,时间复杂度太高了,那么我们直接简化k次循环,使用k个数组存储需要轮转的,其余的向后移动k位,之后在将存储的前k个元素按顺序拼接到前面,时间复杂度O(N),空间复杂度O(N)ok,但这样空间占比还是比较高,那么我们就先翻转整个数组,再将前k个,和后len(nums)-k个进行翻转,时间复杂度O(N),空间复杂度O(1)也过了,还不错,今天就这样~

2024-07-23 17:01:14 220 1

原创 力扣-56.合并区间

这道题主要是用排序+合并去做的,先对输入列表进行排序,之后一个一个的去进行合并,若两个指针的位置需要合并,那么j累加循环至不需要遍历的地方,并将合并后的结果放入要返回的列表中,若不需要合并,则更新指针的位置,知道到最后的一个元素,直接将结果放入列表中即可.虽然过了,但过程中调的挺久的~

2024-07-22 21:26:57 245 2

原创 力扣:21.合并两个有序链表

主打一个分叉,减枝.选出所有可能性去规避,时间复杂度O(N+M),空间复杂度O(1)–只包含链表头的存储,实现如下:实现了,看大家做的时候会选择用递归做,一步一步的进行迭代,实现一下:结果竟然显示没有刚才方法高效,带这种方法的思想还是很值得去借鉴的.听难想的,不看很难想出来感觉~

2024-07-21 20:30:26 320 1

原创 力扣:142.环形链表II

和检测环形链表类似的,时间复杂度O(N),空间复杂度O(N)好的过了,之后要做的是使用更便捷的方法进行计算.经验有限,使用官方讲述的快慢指针方法,包含部分推导以及原理讲解,很清晰所以就粘在这里了,并附上python实现.

2024-07-19 14:39:17 360 1

原创 力扣:141.环形链表+543.二叉树的直径

(1)环形链表(2)二叉树的直径。

2024-07-18 17:16:15 217 1

原创 力扣-234.回文链表+54.螺旋矩阵

(1)回文链表(2)螺旋矩阵。

2024-07-17 17:32:31 202

原创 力扣 226. 翻转二叉树+101.对称二叉树

(1) 翻转二叉树(2)对称二叉树。

2024-07-16 16:30:52 307

原创 力扣-94:二叉树的中序遍历+104:二叉树的最大深度

(1)二叉树的中序遍历(2)二叉树的最大深度。

2024-07-15 15:38:04 277 1

原创 力扣 206:反转链表

链表的逆序,印象中在数据结构部分的头插解法,即在遍历过程中将当前节点单拿出来作为头,插到创建的链表上,以此类推,时间复杂度O(N),空间复杂度O(1)实现起来也很简单,如下:过了,一个链表的头的空间复杂度是O(1).

2024-07-14 19:33:15 252

原创 力扣: 160:相交链表

这是我做链表的第一题,补了一下链表在python中的用法,但其实和C差不多,在定义好数据结构的基础上,节点间的传递和引用也是类似的,那么接下来就是对问题的认识,既然要找他们的相交节点,那么重点感觉是对齐他们,然后再进行遍历,查看对齐后的部分是否相同,那么只需要设置一个函数,查看两个链表的长度,并根据长度先对长的进行处理后,同时处理比较是否相同,时间复杂度为O(M+N),空间复杂度为O(1),实现结果如下:OK,过了,结果还不错,就不优化了,今天先这样.

2024-07-14 17:27:33 325

原创 力扣-53.最大字数组和

和前两天做的前缀和有点像,使用字典存储前i项和,之后遍历,求下标j-i的最大值.超时了,行吧,确实时间复杂度为O(N),空间复杂度为O(N),那就退而求其次,用之前做的那种做法去做,找最大值,如果后面的加前面的,变小了,就替换,不然的话就把当前值加上,之后更新最大值.其实这种做法在之前的题目上是会出bug的,128.最长子序列和这道题感觉有点类似.

2024-07-12 21:03:05 310 1

原创 力扣-73:矩阵置零

这道题,题目说需要使用原地算法,我的理解是要对原矩阵进行修改,而不是生成一个新的矩阵来表示结果,那么这道题要做的就是根据每行和每列的0去更新整个矩阵的值,所以还是必须要去遍历一次整个矩阵,使用字典(哈希表)去存储包含0的行和列,并且还需要得到他的转置矩阵,根据字典存储的内容更新原矩阵和他的转置矩阵,最后通过对比两个矩阵,即原位置与转置后的位置值若相同则不变,不同则值为0,最终在原矩阵上更改,并返回结果(这里可返可不返).时间复杂度O(N2),空间复杂度O(N2).ok,真不错,一遍过!

2024-07-11 20:52:28 256

原创 力扣-560 和为k的子数组

这道题第一想法是通过一次遍历,获取第一个元素的一个子集,以此类推~

2024-07-10 15:40:18 315

原创 力扣-15.三数之和

三数之和和二数之和很相似,双指针做,两端遍历,找到中间是否有符合的值,实现如下:糟糕,可能因为sort还是while循环没剪枝超出时间限制了,时间复杂度是O(N^2),空间复杂度为O(N),这步优化了挺久,想了一下,还是从一开始就把数组排序了吧,然后固定第一个,第二个和第三个进行双指针遍历,并且进行必要的剪枝。这里需要注意的是(1)当nums[i]大于0的时候,就可以之间返回了(2)在双指针向中心聚拢的时候,需要判断l 和j的关系才能进行适当的剪枝这两个问题我遗忘的比较多,想明白就会好一点。

2024-07-09 12:03:15 350

原创 力扣-283 移动零

刷力扣热题–第五天(2):283 移动零菜鸟第五天开始奋战敲代码,持之以恒,见证成长这道题之前使用过找0拼接的方法,但是过不去,于是就用了双指针,左指针和右指针,让两指针同时移动,若指针遇到非零,就交换两个的值,若为0,就让右指针右移,左指针不动,实现结果如下:不晓得官方用了什么办法,可以检测到拼接赋值返回的trick.本题的代码放下了:4.写作时长7-7-15:15 == 7-7-15:29 皮卡丘在努力变强

2024-07-07 15:38:04 158

原创 力扣-128.最长子序列

找出最长的连续序列,先定义一个空列表,之后遍历整个数组,将数组按照大小插入,最终遍历一次,返回最大值:但这样超出内存限制,有点想不出来怎么做了,看了一下官方解题过程,茅塞顿开,就只需要判断当前数是否为某一序列的最小值,若是,则向上递加至该元素不在序列内,否则就跳过.时间复杂度为O(N),空间复杂度为O(N)

2024-07-07 15:07:59 176

原创 力扣49:字母异位词分组

这道题描述较少,初看有点晕,看示例的意思是,就是将整个数组内,包含相同字母但字母顺序不同的单词组为列表,并返回一个多维列表。一个一个遍历,如果前面的数组内包含就放入不包含,就单独创建,使用字典保存中间结果。ok,过了,因为在函数内使用了sort,所以复杂度挺高的,再试一下:改不出来,不恋战,下次继续,今天就这样。时间复杂度 O(Nklogk),空间复杂度O(N)因为用的sort,复杂度为klogk,下次再想想,这个问题该如何避免。

2024-07-06 00:05:33 171

原创 力扣-1. 两数之和

因为这是道简单题,就不用最粗暴的方式了,题目主要的目的还是想要从数组中找到一组和为target的数组下标,那就是说一个数要与除他以外所有数求和再验证,所以至少也得遍历一下整个数组,现在想的是能否先让数组有序,之后再去进行求和,python的话很好实现,结果如下:过是过了,但是感觉结果不得劲,在修改一下:想了蛮久但还是时间还是没下降,不钻牛角尖,多刷点再来进阶。

2024-07-04 21:02:40 354

原创 力扣-3. 无重复字符的最长子串

看到这道题,求的是序列的最长子串长度,老规矩遍历,从头数到尾,找到一个连续子集的最长长度,开干。时间复杂度 O(n),空间复杂度 O(n)细节问题,在修改一下差一个,难受~怀疑是空格那边存在问题,改一下:终于过了,但感觉其实还是存在很多冗余代码的,稍微优化一下,试试能不能加快速度并且减少内存消耗,其实我感觉这个解题方法很像数据结构队列那部分内容,先进先出。删了个print,执行时间变少了:就先这样吧,之后刷第二遍的时候看看自己能不能得到启发。

2024-07-03 21:08:27 223

原创 力扣-11:盛最多水的容器

本题求最大值,第一想法就是遍历,选择数组中的两个数字x和y,计算max(min(x,y)*(|x.index-y.index|)),先试试,看下。时间复杂度(O(n^2)),空间复杂度(1)遍历超时间了,那就试下从两边依次向中心靠拢的方法实现:OK,过了,时间复杂度O(n),空间复杂度O(1).

2024-07-02 21:27:52 262 2

翻译 RELATION: A Deep Generative Model for Structure-Based De Novo Drug Design(阅读笔记))

RELATION:基于结构的从头药物设计的深度生成模型

2024-07-02 19:40:12 44

原创 解决:tensor类型怎么变为数组类型

解决:tensor类型怎么变为数组类型

2022-11-10 11:37:48 809 2

原创 解决IndexError: Target 2 is out of bounds.

解决IndexError: Target 2 is out of bounds.

2022-11-07 20:50:54 4027

空空如也

空空如也

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

TA关注的人

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