- 博客(11)
- 收藏
- 关注
原创 python回文链表
我直接将链表节点的数据取出,存储在了列表中,最后直接判断原始列表与翻转后的列表是否相等。对于回文链表,我的理解是链表是对称的。
2024-04-28 11:20:26
443
1
原创 合并两个有序数组
sorted()用法:sorted(数组),这是不在数组上进行改变,而是返回新的重新排好序的数组。sort()用法:数组.sort(),这是直接在数组上进行改变,不生成新的数组。比较简单,需要注意的是sort()和sorted()的用法。
2024-04-17 12:13:17
186
原创 python删除排序链表中的重复元素
一开始是想创建一个空的链表,如果head中的元素不在空的链表中,就将空链表的指针指向该元素;如果已经在链表中,则忽略。但是这个方法有一个缺点,就是需要遍历该链表,这会造成计算量太大。仔细读完题目发现给的是一个已经排过序的链表,所以直接判断该数值与后面位置的数值是否相等。相等的话,则将该数值的指针指向其后面位置的后面的数值;不相等的话,直接将指针后移一位。
2024-04-17 11:40:42
266
1
原创 python爬楼梯
我们可以找到这个规律,其实n阶台阶的爬楼方法,应该等于n-1阶的爬楼方法加上n-2阶的爬楼方法。所以得出fn=f(n-1)+f(n-2)。一开始是想能否把所有可能列出来,想了一个嵌套循环的方法,但是发现没办法把所有可能都列出来。爬四个楼梯:1+1+1+1阶,2+1+1阶,1+2+1阶,1+1+2阶,2+2阶。爬三个楼梯:1+1+1阶,2+1阶,1+2阶。所以我们就可以用递归的方法解决。爬两个楼梯:1+1阶,2阶。
2024-04-17 11:08:07
340
原创 python-数组加一
所以这里想到的办法是直接将数组转化为字符串,先遍历数组,将int型转化为str类型再加到字符串之后;然后将字符串转化为int类型再加一;得到加一后的数字之后,还需将其转化为数组,则需要再次遍历字符串,这里要注意从字符串里取出来的是字符不是int型的,这时还需要再进行int类型转换。这题目刚开始看到以为直接是数组末尾的数字加一,结果运行之后显示有两个测试用例无法通过。当数组末尾有9时,无法通过测试。
2024-04-09 16:13:05
357
原创 python删除有序数组中的重复项
删除数组中的重复项,可直接把数组转集合,但又由于是递增的数组,所以还需使用sorted函数进行排序。后面改成了nums[:]=sorted(set(nums))就能成功运行,希望有大佬可以帮我解答一下。不是很明白为什么会发生这种情况。
2024-04-08 17:18:01
238
原创 python移动元素
题目中说明只能原地移除,所以无法创建新的数组来接原数组的元素。所以想到了利用for循环以及if判断来进行删除,如代码中的注释部分。但这会出现一个问题,for循环中i的取值范围是(0,count),当删除数组中的元素后,数组会变小,i的取值就会超出索引。所以这种方法无法实现。参考了题解,利用while循环,当i的取值小于数组长度时进入循环,i的值以及len(nums)的值是动态变换的,所以不会出现超出索引的情况。今天的题目是移除元素。
2024-04-08 17:10:03
334
原创 合并两个有序链表
结果测试的时候,直接崩掉,提示我不存在extend这个方法,仔细一看,好家伙,是需要合成有序链表。如果链表1的数据大于等于链表2的数据,则将current的下一个节点指向list2,并且list2的节点向后移动一位;如果链表1的数据小于链表2的数据,则将current的下一个节点指向list1,并且list1的节点向后移动一位;但是由于小菜鸡对链表不太熟悉,所以只能一边看人家的解题思路,一边磕磕巴巴的写代码,一边使用chatgpt。首先,创建一个空链表,以及利用current作为链表的移动节点。
2024-04-07 11:35:03
363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅