python刷题
文章平均质量分 55
get lend gua
这个作者很懒,什么都没留下…
展开
-
【力扣】 需要添加的硬币的最小数量 python
给你一个下标从 0 开始的整数数组 coins,表示可用的硬币的面值,以及一个整数 target。如果存在某个 coins 的子序列总和为 x,那么整数 x 就是一个 可取得的金额。返回需要添加到数组中的 任意面值 硬币的 最小数量 ,使范围 [1, target] 内的每个整数都属于 可取得的金额。数组的 子序列 是通过删除原始数组的一些(可能不删除)元素而形成的新的 非空 数组,删除过程不会改变剩余元素的相对位置。示例 1:输入:coins = [1,4,10], target = 19。原创 2024-03-31 21:16:54 · 364 阅读 · 0 评论 -
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 · 541 阅读 · 0 评论 -
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 · 535 阅读 · 0 评论 -
python贪心算法-leetcode2591. 将钱分给最多的儿童
【代码】python贪心算法-leetcode2591. 将钱分给最多的儿童。原创 2023-09-24 21:27:20 · 140 阅读 · 1 评论 -
课程表 II,运用拓扑排序的思想解决
现在你总共有numCourses门课需要选,记为0到。给你一个数组,其中,表示在选修课程ai前先选修bi。01[0,1]返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回就可以了。如果不可能完成所有课程,返回。这里使用拓扑排序的广度搜索方法。原创 2023-09-10 21:30:10 · 52 阅读 · 1 评论 -
子数组相关操作python
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。原创 2023-08-17 21:51:22 · 181 阅读 · 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 · 271 阅读 · 1 评论 -
两两交换链表中的结点python
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。如结点值原本按顺序是【1,2,3,4】交换结果的顺序就是【2,1,4,3】原创 2023-08-13 13:54:03 · 159 阅读 · 1 评论 -
前缀和-长度最小的子数组 python
滑动窗口内的元素数量大时,不要使用聚合函数进行条件的判断而是选择变量暂存结果,能节省大量聚合函数的执行时间。原创 2023-07-22 17:41:21 · 56 阅读 · 1 评论 -
动态规划python
每次选择一个位置时,要根据位置上的数,进行对应位置的删减,但是该删减的数的位置并没有规律。思路:经典的动态规划思想,因为不能相连,但是又要力求最多,所以,在长度大于等于3的情况下他的前2个和前3个必有一个抢了(不会出现间隔三个不抢)。每次我们选的值之后,就可以nums中所有的这个值都拿了,这个值+1 和-1 的值不能拿了。初始位置的走法为1,遍历矩阵,到达每个位置的走法数为能走到这个位置的符合的出发点上储存的走法相加。一样的选择符合的上一个位置的较优解。每一步只能移动到下一行中相邻的结点上。原创 2023-07-19 00:49:10 · 94 阅读 · 0 评论 -
跳跃游戏python贪心
题目链接。原创 2023-07-16 23:01:31 · 55 阅读 · 1 评论 -
填充结点的下一个右侧结点-python
每次入队都是(深度,结点),每次取出后在队列中找深度一样的结点 找到的第一个(子结点入队顺序记得设置为左边先进队)就是其下一个右侧结点,然后马上结束寻找结点的这个循环 记住:要求返回Node类型 所以为空时不能直接返回[]会报类型错误。题目给的是完美二叉树,且一开始已经够将所有结点的next设置为NULL了。“右侧结点”,其实就是同深度下的右边的那个结点,leetcode的一道中等题(但是难度并不高)原创 2023-07-15 15:40:21 · 32 阅读 · 1 评论 -
二叉树的层序遍历python
题目链接。原创 2023-07-14 21:49:31 · 45 阅读 · 1 评论 -
二叉树最大深度python
当栈不空,取出栈顶元素,判断其是不是叶子结点,如果是把这个叶子结点的深度放到res列表中,如果不是叶子节点,把他的子结点放入栈,子结点的深度就是当前处理结点的深度+1。if 下面有多个elif 遇到一个符合的elif就结束了,不会再去看其他的elif。题目中不是叶子结点的话,左右结点一旦非空就都得进栈,所以左右结点都得检查。栈空证明每个结点都被处理了。其中所有叶子结点的深度都放入res了,所有叶子结点的深度中的最大值就是这棵二叉树的最大深度。栈元素: (所在深度,本身结点)原创 2023-07-14 15:48:40 · 51 阅读 · 1 评论 -
二叉树的遍历python
题目链接。原创 2023-07-13 16:40:30 · 48 阅读 · 1 评论 -
最长公共前缀_字符串
res = res[:j] i字符串的索引为j的字符与res(先保存的最长公共前缀),那么 res[j]开始就不是最长公共前缀。1. 先将字符串列表按照长度从小到大排序,避免不排序在后面对比时还需要处理边界问题。2. 先将最短的作为结果,在依次比较后面的字符串,更新结果。原创 2023-07-12 20:35:56 · 72 阅读 · 0 评论 -
最大数_字符串拼接
容易踩坑的地方:如果 输入的列表是[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 · 227 阅读 · 1 评论 -
滑动窗口_无重复字符的最长子串_刷题笔记
当检查到字串中出现重复,从窗口的第一个元素开始剔除,因为如果重复的元素是第三个,那么第一个元素也作废了,不在计算到当前窗口中合法字串的长度中(遍历过程中窗口中最新合法字串的长度不一定就是最后的结果,最后的结果可能在之前就出现被保存到max_len中了)。作为一个刷题小白,一开始果然脑紫里面还是蹦出了暴力的想法,但是暴力的方法在这里肯定是要翻跟头的,一旦暴力,需要的时间复杂度极高。abcdc 那么当前窗口中最新的合法字串的长度是2 也就是cd。所以查看了题解里面的大佬解法,用哈希表的方法结合滑动窗口方式。原创 2023-07-09 16:34:43 · 49 阅读 · 1 评论