- 博客(13)
- 收藏
- 关注
原创 贪心算法解题心得:122.买股票的最佳时机 II
中的思想,在数组prices前多加一个prices[1]的思路,让左端符合for循环的条件(需要三个数来计算predif和curdif)。但并没有直接在0号位置加,而是令predif的初值为0来实现的。将prices数组转换为折线图,如果遇到波谷就买入,遇到波峰就卖出,这样就是。需要使用一个state,来标志我们现在处于买入还是卖出的状态。在每一天,你可以决定是否购买和/或出售股票。在末尾append了0,避免买入后,一直没卖出的情况。你也可以先购买,然后在。,通过这个局部最优,从而推。
2023-08-14 11:51:44 76
原创 力扣刷题:删除链表中倒数第N个节点 2023.7.2
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:输入:head = [1], n = 1 输出:[] 示例 3:输入:head = [1,2], n = 1 输出:[1]
2023-07-02 23:23:19 86 1
原创 力扣刷题:两两反转链表 2023.6.28
一开始直接拿4个节点在那儿找方法。这样是不对的!应该从最小的单位开始找,找出一个可以一直可以重复的做法!所以应该从两个节点开始寻找算法。多个节点的情况是用来推理和验证的。
2023-06-28 23:13:34 65 1
原创 力扣刷题:定义链表 2023.6.26
class MyLinkedList(object) 这个类,开始我以为是既要定义链表,又要在该类里写方法。但其实ListNode类是在外面定义的。class ListNode : def __init__(self , nums = 0 , next = None) : # 记得要给初值 self . nums = nums相当于,这个类,是用来实现一系列list操作的。并没有规定链表的构造。但是,而不是直接创建一个单独的ListNode。
2023-06-26 22:59:39 87 1
原创 力扣刷题:移除链表元素 2023.6.22
看了答案,涉及到虚拟头节点的问题,dummy_head。有了dummy_head也方便以下情形:需要。应想办法把开始时与头节点有关的那两个操作。
2023-06-22 12:10:42 56 1
原创 力扣刷题:螺旋矩阵II 2023.6.20
NumPy 全称为 Numerical Python,是 Python 的一个以矩阵为主的用于科学计算的基础软件包。Numpy 中有功能强大的 ndarray 对象,能创建 N 维的数组,另外还提供很多通用函数,支持对数组的元素进行操作、支持对数组进行算法运算以及提供常用的统计函数。开始想把每次往里走一层时,最开始的标号记下来,但是推了很久。看了答案发现,答案是直接操作一次就记录一次的,更简单一些。ver2:用反向for循环,简单很多,而且更省时间,用 * 会把前面的元素指 n 遍,不会新建。
2023-06-20 18:46:59 89
原创 力扣刷题:有叙数组的平方 2023.6.16
new = [] 是不可以的。应该用 new = [float(‘inf’)] * len(nums) 提前分配好。new 的元素为无穷大的浮点数。必须从最大的开始放入新数组。从最小的是不可以的。最小的也可能出现在旧数组nums的中间。我们是从两头开始找的。自己做题的时候喜欢用wihle,但每次都要自己在最后一行自己对i值进行自加,有时候忘了还会导致死循环。以后注意使用for。可改进的地方:while的不等于变成小于等于,就可以不写倒数第二行多余的代码了。可用 a**2 代替 a * a。
2023-06-16 18:24:45 69
原创 力扣刷题:删除数组元素 2023.6.15
题目:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gIazPp8J-1686839304817)(Lists.assets/image-20230615201742087.png)]在往前挪元素时,若有两个连续的目标值(需要移除的元素),会被跳过。解决方法是:若挪动了元素,应该给i的值也减一。开始的版本,打#那里,不能同时加减,否则在最后一位时会有问题!最后一位是该删掉的元素的话,slow就不用移动了。for i in range(1, 10) 只会打印1到9。
2023-06-15 22:29:42 87 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人