自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【力扣】 需要添加的硬币的最小数量 python

给你一个下标从 0 开始的整数数组 coins,表示可用的硬币的面值,以及一个整数 target。如果存在某个 coins 的子序列总和为 x,那么整数 x 就是一个 可取得的金额。返回需要添加到数组中的 任意面值 硬币的 最小数量 ,使范围 [1, target] 内的每个整数都属于 可取得的金额。数组的 子序列 是通过删除原始数组的一些(可能不删除)元素而形成的新的 非空 数组,删除过程不会改变剩余元素的相对位置。示例 1:输入:coins = [1,4,10], target = 19。

2024-03-31 21:16:54 399

原创 14届蓝桥杯 pythonB组 保险箱

小蓝有一个保险箱,保险箱上共有 n 位数字。小蓝可以任意调整保险箱上的每个数字,每一次操作可以将其中一位增加 1 或减少 1。当某位原本为 9 或 0 时可能会向前(左边)进位/退位,当最高位(左边第一位)上的数字变化时向前的进位或退位忽略。例如:00000 的第 5 位减 1 变为 99999;99999 的第 5 位减 1 变为 99998;00000的第 4 位减 1 变为 99990;97993 的第 4 位加 1 变为 98003;99909 的第 3 位加 1 变为 00009。

2024-03-31 16:51:43 566

原创 14届蓝桥杯 python B组 填空题 2023

如果能从末尾完整的按顺序 找到 3 -> 2 -> 0 -> 2 则这串数字中按照正相关顺序一定有 “2023”- x // 10 : 获取去掉最后一个数字的数值 如 123 // 10 = 12。去获取数字的每一位而不是转化为字符串再根据索引去获取,更简洁一些。- 按照题意,如果某个数不能找到“2023”,则结果 + 1。- x%10:获取最后一个数字 如 123%10 = 3。这是选择题,最后只需要填答案。

2024-03-31 16:38:00 579

原创 pycharm 光标 变成 粗光标(插入模式)处理

但是-其实-在当前pycharm界面,把右边数字键盘锁起来,也就是 【NumLock】。然后再按一次 0 就行了。很多次莫名其妙按出来不知道怎么关,只能重启pycharm。

2024-03-30 11:44:41 968 2

原创 比较:左连接/右连接/自然连接/交叉连接/半连接

半连接可以理解为需要根据右表查询左表的数据,返回左表的数据行且不带有右表数据,常用exist。保留能对上的行,如E中department_id = 104在D中并没有,结果就没有该行。不需要指定连接键,自动寻找相同列名:department_id。笛卡尔积,得到所有交叉结果。可以看到下面的语句就是。

2023-11-22 21:50:32 508

原创 pandas体育馆的人流量

【代码】pandas体育馆的人流量。

2023-10-23 18:53:11 76

原创 《行程和用户》详细步骤pandas

【代码】《行程和用户》详细步骤pandas。

2023-10-16 21:55:54 87 1

原创 python贪心算法-leetcode2591. 将钱分给最多的儿童

【代码】python贪心算法-leetcode2591. 将钱分给最多的儿童。

2023-09-24 21:27:20 182 1

原创 课程表 II,运用拓扑排序的思想解决

现在你总共有numCourses门课需要选,记为0到。给你一个数组,其中,表示在选修课程ai前先选修bi。01[0,1]返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回就可以了。如果不可能完成所有课程,返回。这里使用拓扑排序的广度搜索方法。

2023-09-10 21:30:10 60 1

原创 子数组相关操作python

给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

2023-08-17 21:51:22 209 1

原创 字符串的查找与替换python

那么后续根据列表中的元素进行字符串拼接时,拼接了tar之后往后走3步,索引1+3 = 4,列表中索引为4的位置刚好就是 “b” 也就是本次替换范围后的下一个位置!(tar,3)列表成了【(a,1),(tar,3),(c,1),(d,1)】,在原字符串“abcd”中,应该是变成了“atard”因为是按顺序加入列表,所以在列表中的索引,就是字符在原本字符串中的索引。将1换成“1,1”原a的索引变化:【0,1,1,2,a】从3变成了4。【(a,1),(b,1),(c,1),(d,1)】索引为1开始的。

2023-08-16 22:39:11 281 1

原创 两两交换链表中的结点python

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。如结点值原本按顺序是【1,2,3,4】交换结果的顺序就是【2,1,4,3】

2023-08-13 13:54:03 174 1

原创 寻找表中连续出现n次的数-MYSQL

在 SQL 中,id 是该表的主键。id 是一个自增列。找出所有至少连续出现三次的数字。返回的结果表中的数据可以按排列。结果格式如下面的例子所示:Logs 表:Result 表:1 是唯一连续出现至少三次的数字。

2023-08-06 22:22:54 231 1

原创 两数之和,三数之和,四数之和 ,及优化 python

以双指针或者哈希表代替暴力枚举

2023-08-05 17:35:49 153 1

原创 前缀和-长度最小的子数组 python

滑动窗口内的元素数量大时,不要使用聚合函数进行条件的判断而是选择变量暂存结果,能节省大量聚合函数的执行时间。

2023-07-22 17:41:21 74 1

原创 动态规划python

每次选择一个位置时,要根据位置上的数,进行对应位置的删减,但是该删减的数的位置并没有规律。思路:经典的动态规划思想,因为不能相连,但是又要力求最多,所以,在长度大于等于3的情况下他的前2个和前3个必有一个抢了(不会出现间隔三个不抢)。每次我们选的值之后,就可以nums中所有的这个值都拿了,这个值+1 和-1 的值不能拿了。初始位置的走法为1,遍历矩阵,到达每个位置的走法数为能走到这个位置的符合的出发点上储存的走法相加。一样的选择符合的上一个位置的较优解。每一步只能移动到下一行中相邻的结点上。

2023-07-19 00:49:10 107

原创 跳跃游戏 II python

如果要知道最小的跳跃次数,还要注意,你还需要记录步数,在确定了下一跳目的地之前,跳数还没变,没有真正的跳出去。与跳跃游戏 I 不同的是,他这次不是要求是否可以到达,要求的是在可以到达的前提下,最小的跳跃次数。只是要求判断是否可以到达最后,只要不断更新最远位置就行了。向前跳转的最大长度。生成的测试用例可以到达。处,你可以跳转到任意。

2023-07-18 13:30:57 252 1

原创 跳跃游戏python贪心

题目链接。

2023-07-16 23:01:31 65 1

原创 填充结点的下一个右侧结点-python

每次入队都是(深度,结点),每次取出后在队列中找深度一样的结点 找到的第一个(子结点入队顺序记得设置为左边先进队)就是其下一个右侧结点,然后马上结束寻找结点的这个循环 记住:要求返回Node类型 所以为空时不能直接返回[]会报类型错误。题目给的是完美二叉树,且一开始已经够将所有结点的next设置为NULL了。“右侧结点”,其实就是同深度下的右边的那个结点,leetcode的一道中等题(但是难度并不高)

2023-07-15 15:40:21 42 1

原创 二叉树的层序遍历python

题目链接。

2023-07-14 21:49:31 53 1

原创 二叉树最大深度python

当栈不空,取出栈顶元素,判断其是不是叶子结点,如果是把这个叶子结点的深度放到res列表中,如果不是叶子节点,把他的子结点放入栈,子结点的深度就是当前处理结点的深度+1。if 下面有多个elif 遇到一个符合的elif就结束了,不会再去看其他的elif。题目中不是叶子结点的话,左右结点一旦非空就都得进栈,所以左右结点都得检查。栈空证明每个结点都被处理了。其中所有叶子结点的深度都放入res了,所有叶子结点的深度中的最大值就是这棵二叉树的最大深度。栈元素: (所在深度,本身结点)

2023-07-14 15:48:40 59 1

原创 二叉树的遍历python

题目链接。

2023-07-13 16:40:30 55 1

原创 最长公共前缀_字符串

res = res[:j] i字符串的索引为j的字符与res(先保存的最长公共前缀),那么 res[j]开始就不是最长公共前缀。1. 先将字符串列表按照长度从小到大排序,避免不排序在后面对比时还需要处理边界问题。2. 先将最短的作为结果,在依次比较后面的字符串,更新结果。

2023-07-12 20:35:56 83

原创 最大数_字符串拼接

容易踩坑的地方:如果 输入的列表是[0,0] 那么他预期的结果应该是“0” 所以我们return之前先判断一下结果如果是0开头的就让结果等于一个“0”(有数字的话排序后一定会在0之前,所以排序后0作为开头代表nums里面全是0)自定义一个sort_way(x, y)根据传入的字符进行拼接并计较,需要注意的是cmp_to_key是根据正负数来决定是否交换的,即 sort_way 返回-1则不交换,1则交换。首先明白python中字符串的大小比较原理 ,他是一位一位的比较的,不管长度。

2023-07-10 16:19:25 260 1

原创 滑动窗口_无重复字符的最长子串_刷题笔记

当检查到字串中出现重复,从窗口的第一个元素开始剔除,因为如果重复的元素是第三个,那么第一个元素也作废了,不在计算到当前窗口中合法字串的长度中(遍历过程中窗口中最新合法字串的长度不一定就是最后的结果,最后的结果可能在之前就出现被保存到max_len中了)。作为一个刷题小白,一开始果然脑紫里面还是蹦出了暴力的想法,但是暴力的方法在这里肯定是要翻跟头的,一旦暴力,需要的时间复杂度极高。abcdc 那么当前窗口中最新的合法字串的长度是2 也就是cd。所以查看了题解里面的大佬解法,用哈希表的方法结合滑动窗口方式。

2023-07-09 16:34:43 59 1

原创 有效括号_刷题笔记

,长度为1,而且我关于不匹配就直接结束运行的处理也不够果断,上面的代码我就算不匹配也是继续运行到最后靠 len(stack)== 0来判断最后的结果,修改为下面的代码能及时止损。这是我一开始的代码,发现不能通过,因为给的字符串s长度可能为1且不是左括号导致栈空,这时候你用stack[-1]去取栈顶元素会报错。遍历字符串,遇到左括号就入栈,遇到右括号就与栈顶的字符串对比,若匹配则继续,不匹配直接return False结束。需要注意的是,给的字符串长度可能只是1,而且也不一定是左括号,如 ']',

2023-07-09 14:50:38 41 1

空空如也

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

TA关注的人

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