![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode(python3)
大口粘痰嚼不烂
这个作者很懒,什么都没留下…
展开
-
404. 左叶子之和
【代码】404. 左叶子之和。原创 2024-07-28 21:43:28 · 196 阅读 · 0 评论 -
2399. 检查相同字母间的距离(python3)
第一种,暴力解法,采用双重循环,解决问题(时间复杂度较高)知识点:Python内置函数ord()使用。原创 2024-07-27 23:42:14 · 124 阅读 · 2 评论 -
1001. 网格照明(python3)/(困难)
相比之下,列表的查找操作需要遍历整个列表,其时间复杂度为O(n),其中n是列表中的元素数量。同理,除了查找操作外,集合还支持在常数时间复杂度内添加和删除元素,而列表是基于顺序表实现的,相比之下,列表的插入和删除操作(特别是在列表的开头或中间位置)可能需要移动多个元素,从而导致更高的时间复杂度。r[i] 的值表示为这一行亮着的灯泡数,当我们点亮第 i 行灯泡时,直接 r[i] += 1,熄灭灯泡时 r[i] -= 1。那么只有三个灯泡都熄灭时,r[i] = 0,也就是结果三次 r[i] -= 1。原创 2024-07-26 23:32:56 · 120 阅读 · 0 评论 -
1005. K 次取反后最大化的数组和
第二种,先对列表进行排序(按照绝对值),再遍历列表中的每个元素,如果元素<0,则取相反数,反之不变,每次循环k-=1(判断条件为k>0)。最后将绝对值最小的数变为他的(-1)的k次方。第一种是:对列表进行排序,然后进行k次循环,每次循环将列表最小的数据变为相反数,然后再对列表进行排序。优点:思路简单,容易理解。原创 2024-07-26 17:51:34 · 92 阅读 · 0 评论 -
289. 生命游戏
第二种是:利用原地算法,给更新的细胞赋予新的状态(-1为活变死,2为死变活),然后根据细胞四周的活细胞个数,用if来实现规则,给该细胞赋予新的状态。第一种是:利用列表推导式建立一模一样的二维列表,然后通过对原有的二维列表四周的细胞进行判断,将每个细胞的状态在新的列表内更新。下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是同时发生的。个格子的面板,每一个格子都可以看成是一个细胞。的当前状态,返回下一个状态。原创 2024-07-25 18:25:59 · 195 阅读 · 0 评论 -
2280. 表示一个折线图的最少线段数
先利用匿名函数对二维数组进行排序(以第0个元素为排序标准),然后对每条线段之间的斜率进行判断(这里注意特殊情况:只有一行数据的为0条线段,只有2行数据的为1条线段),不相等则线段数量+1,反之不做任何操作。(进行斜率判断时,因为部分数据超出浮点数精度,所以利用数学知识,将用除法计算的斜率判断换成了乘法)原创 2024-07-24 23:21:02 · 100 阅读 · 0 评论 -
2679. 矩阵中的和
第二种:先对二维列表每行进行排序,后利用python的内置函数zip进行计算(时间复杂度底)第一种:先对二维列表的每一列进行排序,然后对每一列的数据进行逐个比较,找出最大值。原创 2024-07-24 22:33:06 · 249 阅读 · 0 评论 -
1509. 三次操作后最大值与最小值的最小差(python3)
如果能修改三个值,就有四种可能:10 - 4(修改N[0]、N[1]、N[2]) 9 - 3(修改N[0]、N[1]、N[n-1]) 8 - 2(修改N[0]、N[n-1]、N[n-2]) 7 - 1(修改N[n-1]、N[n-2]、N[n-3])如果能修改两个值,就有三种可能:10 - 3(修改N[0]和N[1]) 9 - 2(修改N[0]和N[N-1]) 8 - 1(修改N[n-1]和N[n-2])首先需要对数组进行排序,然后对排序后的序列进行计算。原创 2024-07-22 22:35:39 · 127 阅读 · 0 评论