自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 int int作为工厂函数的作用

int作为工厂函数的作用Python 中的int是可调用类型。当你不带任何参数调用int()时,它返回0。因此,当你创建一个defaultdict(int)时,每次你访问字典中不存在的键时,int()函数就会被调用,并且该键会被赋予默认值0。

2025-07-13 08:47:52 269

原创 linklist

◦ B'.random = cur.random.next = C.next = C'(正确,新B'的random应指向新C')。• 当cur.random=B时,cur.random.next = B.next = B',而B'正是需要的新节点。◦ 所以 A'.random = B'(正确,因为原A.random指向B,新A'的random应指向新B')。A' --random--> B'(通过cur.random.next = B.next = B')

2025-07-13 08:42:55 734

原创 BFS When do you need a for _ in range(len(queue)) and when not

always。

2025-06-30 13:55:14 531

原创 岛屿数量。BFS 里面的类方法和非类方法

• 嵌套函数(如bfs)属于外层函数(numIslands)的作用域,可直接访问外层的变量(grid, m, n),这是Python作用域规则(LEGB原则)决定的。是的,如果不使用类(即写成普通函数而非类方法),可以通过作用域共享变量,避免显式传递所有参数。◦ bfs作为嵌套函数,可直接访问外层函数numIslands的变量(grid, m, n),无需显式传参。• 不写类时,将BFS作为外层函数的嵌套函数,可利用作用域共享变量,无需显式传参,代码更简洁。# 需用传入的grid, m, n。

2025-06-28 11:05:05 356

原创 number of island (DFS)

【代码】number of island (DFS)

2025-06-28 08:50:59 669

原创 岛屿数量的if while的思考

• 迭代DFS:必须用while循环+栈手动模拟递归过程,此时if判断依然存在(用于边界检查),但循环的作用是持续处理栈中的节点,直到栈为空。• 递归DFS:用if判断作为递归终止条件(如边界检查),靠函数调用栈自动管理遍历顺序,代码简洁(比如你之前看到的递归版本)。• 若想用while实现DFS,必须搭配栈来管理节点,此时if依然用于条件判断,只是遍历方式从“递归调用”变为“循环处理栈”。用while循环代替递归调用,通过栈存储待访问节点,每次循环处理一个节点,if判断在循环内用于筛选有效节点。

2025-06-28 08:38:03 194

原创 Link List

◦ 循环中 move 会移动到第三个 2,直到 move.next 是 3(此时 move.val=2,move.next.val=3,循环结束),最终 move 指向第三个 2。◦ head.val=1,head.next.val=2,不重复 → head.next = self.deleteDuplicates(2),进入递归。◦ 循环检查 move.val=2 == head.val=2,move 后移到 3(此时 move.val=3!3. 确保所有重复节点都被删除,非重复节点保留并正确连接。

2025-06-18 12:16:39 865

原创 二叉树和元组 挺神奇的

例如:子树 2->4 的左子树是 4(叶子节点),其元组是 (None, 4, None),所以整个子树的元组是 ((None, 4, None), 2, None)。◦ 左子节点(节点6)的左、右子节点均为 None,返回 [6, 1],平均值6/1=6,更新 self.maxAvg=6;◦ 右子节点(节点4)的左、右子节点均为 None,返回 [4, 1],平均值4/1=4(不更新最大值);◦ 计算当前子树(节点2)的总和 = 0+0+2=2,节点数=0+0+1=1;

2025-06-12 15:03:43 509

原创 二叉树的垂直、层序、zigzag遍历

◦ 但如果节点添加顺序混乱(如先加层级3的节点,后加层级1的节点),原始顺序会是 [(3, 15), (1, 3), (3, 7)],此时必须通过 key=lambda x: x[0] 按层级排序,才能得到正确的 [3, 15, 7]。2. 处理列0时,原始元组顺序是 [(1, 3), (3, 15), (3, 7)],但层级顺序应为 1 → 3(先上层后下层)。0: [(1, 3), (3, 15), (3, 7)], # 列0,层级1、3、3。1. 按列索引排序后,处理顺序为 -1 → 0 → 1。

2025-06-10 07:48:27 385

原创 堆 有点东西

【代码】堆 有点东西。

2025-06-08 09:57:43 154

原创 【无标题】

【代码】【无标题】

2025-06-07 14:49:26 117

原创 滑动窗口模板

挑战程序设计竞赛》这本书中把滑动窗口叫做「虫取法」,我觉得非常生动形象。因为滑动窗口的两个指针移动的过程和虫子爬动的过程非常像:前脚不动,把后脚移动过来;后脚不动,把前脚向前移动。其实我对这个left 移动的地方还不是特别的明白,因为就是说,如果0大于k,那么left+1会到哪里?

2025-06-06 16:45:36 187

原创 【无标题】

• 递归调用:后续递归会传入具体的 end 参数(如左子树或右子树的结束索引),此时不能覆盖为整个数组长度,否则会越界。递归构建左子树时,传入 end=0(左子树区间是 start=1 到 end=0,此时无效,返回空),若此时在函数内强制将 end 设为 len(preorder)-1,会导致左子树错误处理整个数组。假设数组为 [3,1,2],首次调用时 end=None,需设为 2(数组长度3,索引0-2)。• 首次调用:未传 end,需计算整个数组长度(len(preorder)-1)。

2025-05-18 23:12:43 326

原创 今日力扣-二叉树

以二叉树 [1,3,null,null,2] 为例(结构:根节点 1,左子节点 3,右子节点 2),这是一个错误的 BST(因 3>1,破坏升序)。以下是代码执行过程分析:初始状态• firstNode = None,secondNode = None,pre = TreeNode(-∞)(前驱节点,初始值负无穷)第一步循环:while p or stack(此时 p=1 非空)进入内层 while p 循环(处理左子树)

2025-05-18 09:14:19 1108

原创 力扣周赛记录

默认情况下,sorted() 是从小到大排序,所以对于 dict_values([2, 3]),sorted(Counter(s).values()) 会返回 [2, 3]。对于前面的例子 Counter({'a': 2, 'b': 3}),Counter(s).values() 会返回一个可迭代对象 dict_values([2, 3])。在这个逻辑中,它的目的可能是计算需要删除的字符数量(通过保留出现次数较多的 k 种字符,删除出现次数较少的字符,对这些要删除字符的出现次数求和)。

2025-05-12 10:39:01 441

原创 【无标题】

后来懂了,其实就是一种大神常用的简化写法,就是把进位值存储覆盖掉原来的l1 ,不影响接下来的运算计算。这道题是用了第 2 题的思路来做的,所以 稍微复杂一点,需要反转过来来做。交换l1 和l2 然后,再把进位赋值给了l1,不明白。我没有看懂灵神的步骤,这是我的步骤。灵神的代码这里我不太懂中间的地方。两种代码的时空复杂度不一样。

2025-05-09 11:36:39 118

原创 binary search。today reach the aim 100 leetcode

中序遍历,不断更新当前值与前面值差值的最小值即可。

2025-04-30 12:10:16 229

原创 Todays‘ leetcode

Today‘s leetcode

2025-04-27 12:13:15 966

原创 【无标题】

取第一个单词,然后用第二个单词开始匹配,逐步从最末尾删除一个字母,然后进行匹配和比较。po = po[:-1] # 删除最后一个字符。这道题让我觉得内心五味杂陈,不牢靠的基础知识在这道题上被卡的死死的。# 如果已经减到空串了,就直接返回 ""po = strs[0] # 初始公共前缀。

2025-04-22 14:30:47 416

原创 leetcode

实际上这个方法不太好,想了想还是应该用双指针。

2025-04-14 08:19:46 238

原创 力扣周赛3508

昨天完成了代码随想录的4道,晚上讨论完成了周赛第一题,数组最小和排序,自己有思路但是写不出来,在松哥引导下写了出来,很有成就感,并且发现自己 的基础很差,implemtation很弱很弱。 今天早上开始周赛第二题,计划继续完成4道贪心算法,以及英语学习。

2025-04-08 16:18:38 811

原创 二叉树的遍历

链接:https://leetcode.cn/problems/binary-tree-inorder-traversal/solutions/324347/python3-er-cha-shu-suo-you-bian-li-mo-ban-ji-zhi-s/# 递归2:通用模板,可以适应不同的题目,添加参数、增加返回条件、修改进入递归条件、自定义返回值。商业转载请联系作者获得授权,非商业转载请注明出处。来源:力扣(LeetCode)

2025-03-26 16:36:38 229

原创 切片操作l

计算从字符串末尾开始,需要保留(或截取)的子串的起始索引位置。位置(不包括该位置)的所有字符。这部分是除了上一步截取的子串之外的剩余部分。: 将上述两步得到的两个子串进行拼接,形成新的字符串。: 同样利用切片操作,截取从字符串开头到。这个子串包含了从右往左数的。的正整数,否则会导致索引错误。: 利用切片操作,从字符串。的末尾开始,截取长度为。应该是一个小于或等于。

2025-03-22 00:39:08 220

原创 【无标题】

使用方法将字符串line按照空白字符(如空格、换行符\n、制表符\t等,但默认主要是空格)分割成一个字符串列表。会对这个字符串列表进行排序。排序是基于字符串的字典序(即ASCII码顺序)进行的,默认情况下是升序排序。将排序后的字符串列表arr使用空格连接成一个新的字符串。这里arr是的结果。

2025-03-20 11:08:52 208

原创 Python代码示例展示如何使用scikit-learn库进行监督学习中的线性回归

以下是一个详细的Python代码示例,展示如何使用库进行监督学习中的线性回归。我们将通过一个简单的线性回归模型来预测数据。

2025-03-13 10:20:33 270

原创 用字典的方法实现“定义一个函数,可以接受两个字符串作为输入,并输出最大长度打印。”以下是仅两个字符串以及多个字符串的做法。

1.两个字符串2.多个字符串# b_dic={}

2025-02-15 21:33:17 114

原创 求助大佬们,问下arcgis处理完的点,去pytnon中爬取街景,怎么踢出没有街景的点?

求助大佬们,问下arcgis处理完的点,去pytnon中爬取街景,怎么踢出没有街景的点?

2024-08-12 20:27:30 157

原创 python 安装pip 遇到各种问题后

新手初学 努力解决每一个问题 加油!

2024-08-03 11:44:40 297 1

空空如也

空空如也

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

TA关注的人

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