- 博客(202)
- 资源 (2)
- 收藏
- 关注
原创 蓝桥杯数的分解(python)
题目如下题目解析这道题目是填空题,我们直接进行暴力求解即可,我们只需要两层循环即可,最后需要维持顺序,因为同一个数是一个答案。代码如下res = 0for i in range(1, 2019): for j in range(i+1, 2019): if i+j >= 2019 or 2019-i-j<=j:# 用于维持顺序 break k = 2019 - i - j str_i, str_j, st
2022-01-13 13:43:47
4991
原创 力扣1713.得到子序列最少的操作次数
题目如下https://leetcode-cn.com/problems/minimum-operations-to-make-a-subsequence/题目解析简单来看会发现这道题目是求最长公共子序列,但是求最长公共子序列的时间复杂度会很高,其实我们可以将这个问题转化为最长上升子序列的解法。根据target中互不相同,我们知道每个数字对应的坐标唯一;于是最长公共子序列等价于arr用target的坐标转换后构成最长的上升子序列.因为子序列的顺序不会发生改变,还是按照原来的顺序进行排列,我们只需要
2022-01-12 13:30:22
2802
原创 力扣334.递增的三元序列(python题解)
题目如下:https://leetcode-cn.com/problems/increasing-triplet-subsequence/题目解析:这道题可以利用最长上升子序列的解法进行解答,但是这道题目可以优化,因为只需要达到三个上升序列即可,所以我们可以设置为定长。首先令K来储存我们的最长元素的最小的那一个,例如K[n]表示长度为n的上升序列中最后一个元素中的最小值,但是这里我们n只需要为2即可,因为如果有元素大于k[2],说明就有递增的三元序列。代码如下class Solution:
2022-01-12 11:17:30
389
原创 蓝桥杯——旋转(python题解)
题目如下:这个类似于矩阵的转置,但又不完全是,首先是以左下角为轴进行旋转。我们直接暴力求解即可,代码如下n, m = map(int, input().split(' '))res = [[0]*n for _ in range(m)]for row in range(n): values = list(map(int, input().split(' '))) for col in range(m): res[col][n-row-1] = values[c
2022-01-11 21:12:57
516
原创 力扣1036.逃离大迷宫(Python题解)
题目网址:https://leetcode-cn.com/problems/escape-a-large-maze/submissions/题目解析:迷宫题目应该利用bfs进行解答,但是这道题目需要一点优化,给出的迷宫最大可到[1e6, 1e6], 数目庞大,如果直接进行遍历那么肯定会超时,但是我们可以巧妙地利用这个障碍,如果没有完全封锁的话,意味着我们可以走出去,但是封锁的话能达到什么地步呐?最大只能由200个坐标被封锁,最大化的话,就是说封锁一个角落最大值为n*(n-1)//2,n是封锁的坐标,所
2022-01-11 19:52:52
466
原创 蓝桥杯——迷宫(python题解)
题目如下文件内容如下:0101010100101100100101011001011010010000100010101000001000100000101010010000100000001001100110100101011110110100100010000011010010111000110000000100000100000000101010001101000010100000101010101100101100011111000000101000010010100010100000
2022-01-10 18:56:41
474
2
原创 快速排序及其python实现
什么是快速排序快速排序的基本思想是通过分治法把一个列表分为两个子串。分离的原理就是利用一个基准。算法描述:1.从列表里挑出一个元素作为基准。2.重新排列数组,将所有元素比基准小的放在基准前面,比基准大的放在基准后面,,该基准处于数组的中间。称为分区操作。3.分离两个数组,递归地进行上述操作。该算法本质上是递归与分治的结合,利用递归进行将数组分离,并利用基准排序。在快速排序中,我们需要设计两个指针,分别在末端和当前基准处,一般基准都为第一个,然后进行两者的比较,如果最后的比基准大,则指针前移,直
2022-01-02 23:07:48
201
原创 Leetcode.6Z字形变换
题目解析这道题就需要我们暴力的去求解,解法其实也有方便的,这里我们采用了更为快的方法。我们只需要在计算中把三层分开然后组合就可以了。 if numRows < 2: return s res = ["" for _ in range(numRows)] i, flag = 0, -1 for c in s:# 我们把三层分开。 res[i] += c if i == 0 or i == n
2021-07-21 20:24:38
115
原创 leetcode.456.132模式
题目解析这道题目我们可以先找J。找出来j,开始找K,找K的条件是K要比J小,但是下标大,这我们可以一个一个遍历,最后找I,I要在K的基础上找,比K小,下标比J小。这次利用单调栈,我们储存的数值其实是可选的J的下标。codeclass Solution: def find132pattern(self, nums: List[int]) -> bool: n = len(nums) # 单调栈,存储的是可选的j的下标 stk = [0]
2021-07-21 20:22:16
124
原创 leetcode剑指 Offer 42. 连续子数组的最大和
题目意思很简单,我们可以直接用动态规划进行求解,前面的和如果小于所加的最后一个数字,那么最大值一定在这个数的后面,所以需要重新进行叠加,并记录此时最大值。class Solution: def maxSubArray(self, nums: List[int]) -> int: n = len(nums) pre = 0 ans = nums[0] for i in range(1, n + 1) : p
2021-07-17 15:30:57
110
原创 leetcode.53排序数组中查找数字
题目解析其实题目很简单,我们在排序数组中寻找的话首先要来找到左右边界,这里我们采用二分法进行解决。我们首先找到中点m,之后与target进行比较。i为初始下标0,j为结尾,如果寻找有边界,这个数小于等于target,那么i=m+1,否则j=m-1,然后继续这个循环,右边界与之相似 # 搜索右边界 right i, j = 0, len(nums) - 1 while i <= j: m = (i + j) // 2
2021-07-16 21:31:23
223
原创 leetcode 5.最长回文子数列——python
暴力解法看到这道题是第一个想的是暴力求解的方法,我们设置两个变量,一个变量代表起始位置,初始量为0,另外一个代表的是长度,初始量为1,我们进行遍历,如果发现更长的回文数列,那么就调换位置,最后返回结果。代码如下# encoding:utf-8def ff(a, b, c):# 判断是否为回文数列 while b < c: if a[b] != a[c]: return False b += 1 c -= 1
2021-07-15 20:47:30
195
原创 leetcode-300.最长递增子序列(python)
题目如下给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。题目解析这道题其实第一眼也能看出来,求最长递增数列应该用动态规划进行解决,但是动态规划的状态转移方程我们应该怎么做呐?我们假设有前n个数字进行比较,dp[i]是第i个,我们重新创建一个数列,数列里全是1,代表所有的数字都可以单个形成长度为1的子数列,然后计算前面有多少比自
2021-07-13 14:48:13
426
原创 蓝桥杯-分考场-python
题目如下n 个人参加某项特殊考试。为了公平,要求任何两个认识的人不能分在同一个考场。求是少需要分几个考场才能满足条件。输入描述输入格式:第一行,一个整数 n (1≤n≤100),表示参加考试的人数。第二行,一个整数 m,表示接下来有 m 行数据。以下 mm 行每行的格式为:两个整数 a,ba,b,用空格分开1≤a,b≤n )表示第 a 个人与第 b个人认识。输出描述输出一行一个整数,表示最少分几个考场。输入输出样例示例输入581 21 31 42 32 42 53
2021-06-03 20:15:56
985
2
原创 蓝桥杯对局匹配——python
题目如下小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是 K 的两名用户匹配在一起。如果两人分差小于或大于 K,系统都不会将他们匹配。现在小明知道这个网站总共有 N 名用户,以及他们的积分分别是 A1, A2, AN小明想了解最多可能有多少名用户同时在线寻找对手,但是系统却一场对局都匹配不起来(任意两名用户积分差不等于 K)?输入描述第一行包含两个个整数 N,K。第二行包含 NN个整数 A1
2021-06-03 16:27:22
354
1
原创 蓝桥杯——发现环(python)
题目如下小明的实验室有 N 台电脑,编号1⋯N。原本这 N 台电脑之间有 N−1 条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了 BUG。为了恢复正常传输。小明需要找到所有在环路上的电脑,你能帮助他吗?输入描述输入范围:第一行包含一个整数 N。以下 N 行每行两个整数 a,b,表示 a
2021-06-01 21:44:50
355
1
原创 蓝桥杯-路径之谜——python
题目如下小明冒充 X 星球的骑士,进入了一个奇怪的城堡。城堡里边什么都没有,只有方形石头铺成的地面。假设城堡地面是 n×n 个方格。如下图所示。图1按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走,也不能跳跃。每走到一个新方格,就要向正北方和正西方各射一箭。(城堡的西墙和北墙内各有 n 个靶子)同一个方格只允许经过一次。但不必走完所有的方格。如果只给出靶子上箭的数目,你能推断出骑士的行走路线吗?有时是可以的,比如上图中的例子。本题的要求就是已知箭靶数字,求骑士的行走路径(测试
2021-05-26 23:26:45
1733
17
原创 蓝桥杯-赢球票——python
题目如下某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。主持人拿出 N 张卡片(上面写着 1⋯N 的数字),打乱顺序,排成一个圆圈。你可以从任意一张卡片开始顺时针数数: 1,2,3⋯如果数到的数字刚好和卡片上的数字相同,则把该卡片收入囊中,从下一个卡片重新数数。直到再无法收获任何卡片,游戏结束。囊中卡片数字的和就是赢得球票的张数。比如:卡片排列是:1 2 3我们从 1 号卡开始数,就把 1 号卡拿走。再从 2 号卡开始,但数的数字无法与卡片对上,很快数字越来越大,不可能再拿走卡片了。因此
2021-05-26 21:30:50
627
1
原创 蓝桥杯——七星填空(python)
题目如下:如下图所示。在七角星的 14 个节点上填入 1 ~ 14的数字,不重复,不遗漏。 要求每条直线上的四个数字之和必须相等。图片描述图中已经给出了 3 个数字。 请计算其它位置要填充的数字,答案唯一。填好后,请输出绿色节点的 4 个数字(从左到右,用空格分开)。题目解析我们利用python全排列函数遍历所有就可以了代码import itertoolsx = [i for i in range(1, 15)]x.remove(6)x.remove(11)x.remove(1
2021-05-26 16:53:16
598
1
原创 蓝桥杯机器人塔——python
题目如下:X 星球的机器人表演拉拉队有两种服装,A 和 B。他们这次表演的是搭机器人塔。类似:AB BA B AA A B BB B B A BA B A B B A队内的组塔规则是:A 只能站在 AA 或 BB 的肩上。B 只能站在 AB 或 BA 的肩上。你的任务是帮助拉拉队计算一下,在给定 A 与 B 的人数时,可以组成多少种花样的塔。输入描述输入一行两个整数 M,NM,N(0<M,N<5000<M,N<500),分别表示 A、B 的人数,保证人数
2021-05-25 22:22:20
846
7
原创 蓝桥杯-凑平方数(python)
题目如下本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。把 00 ~ 99 这 1010 个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的。比如:0, 36, 5948721再比如:10985247361, 25, 63907840, 4, 289, 15376…注意,00 可以作为独立的数字,但不能作为多位数字的开始。 分组时,必须用完所有的数字,不能重复,不能遗漏。如果不计较小组内数据的先后顺序,请问有多少种不同的分组方案?题目解析官方解法我太
2021-05-25 17:05:14
384
原创 蓝桥杯——一步之遥
题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。从昏迷中醒来,小明发现自己被关在 X 星球的废矿车里。 矿车停在平直的废弃的轨道上。 他的面前是两个按钮,分别写着 “F”“F” 和 “B”“B” 。小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。 按 FF,会前进 9797 米。按 BB 会后退127127 米。 透过昏暗的灯光,小明看到自己前方 11 米远正好有个监控探头。 他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。 或许,通过多次操作
2021-05-25 15:53:13
348
原创 蓝桥杯——调手表(python解答)
题目如下标题:调手表小明买了块高端大气上档次的电子手表,他正准备调时间呢。在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟。大家都知道,手表只有一个按钮可以把当前的数加一。在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 。如果当前的数是 n - 1,按一次后会变成 0 。作为强迫症患者,小明一定要把手表的时间调对。如果手表上的时间比当前时间多1,则要按 n - 1 次加一按钮才能调回正确时间。小明想,如果手表可以再添加一个
2021-05-14 22:22:36
451
蓝桥杯-激光样式——python解决
题目如下激光样式x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种30台就不好算了,国王只好请你帮忙了。要求提交一个整数,表示30台激光器能形成的样式种数。注意,只提交一个整数,不要填写任何多余的内容。解法这
2021-05-13 22:16:39
352
原创 用树莓派做一个语音机器人
早就想写一篇语音机器人的文章,凑巧这两天受委托做个树莓派语音机器人,又复习一下流程熟悉了过程才准备写一篇文章,这是基于图灵机器人和百度api的语音助手。目录准备硬件准备包的准备准备机器人录音语音转文字图灵机器人回复文字转语音完整代码准备硬件准备首先我们需要给树莓派安装麦克风和扬声器,当然没有扬声器也可以直接用耳机,然后进行调试。输入:lsusb或者arecord -l识别成功之后进行录音arecord -D "plughw:1,0" -f dat -c 1 -r 16000 -d
2021-04-28 11:41:47
1902
4
原创 一篇文章让你快速入门Pandas
目录Pandas介绍简单介绍Pandas的基本功能Pandas的优势数据结构为什么有多个数据结构大小可变与数据复制Pandas的基本内容Pandas的基础方法数据的生成与有关方法一维数组二维数组数组的其余方法Pandas的选择数据用标签选取数据切片利用iloc进行选择Boolean indexing布尔索引Pandas的缺失值处理删除缺失值的行填充缺失值提取NAN值的布尔掩码Pandas的运算统计合并concat合并join合并append追加Pandas数据的导入与导出数据导入数据导出应用实例Pandas
2021-04-21 23:07:12
2387
15
原创 一篇文章让你快速入门Numpy
Numpy介绍什么是NumpyNumpy为什么这么快Numpy基本内容基本属性当然在选取的时候我们仍然可以设置里面的数据形式还可以简单的创建一个零矩阵和一矩阵numpy中还有arange函数,可以设定指定范围创建矩阵生成随机矩阵基础运算numpy中的三角函数矩阵中的数进行比较时会每个进行比较,返回bool值的同型矩阵利用numpy还可以进行矩阵的乘积运算还有其余的运算函数如下索引一维操作二维操作其余函数分割和合并分割合并总结Numpy介绍什么是NumpyNumpy是python中科学计算的基础包,提.
2021-04-21 13:54:23
681
2
原创 蓝桥杯螺旋折线——python
题目如下如图p1.png所示的螺旋折线经过平面上所有整点恰好一次。对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。例如dis(0, 1)=3, dis(-2, -1)=9给出整点坐标(X, Y),你能计算出dis(X, Y)吗?【输入格式】X和Y对于40%的数据,-1000 <= X, Y <= 1000对于70%的数据,-100000 <= X, Y <= 100000对于100%的数据, -10000000
2021-04-01 19:50:17
468
原创 蓝桥杯日志统计——python
题目如下小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是:ts id表示在ts时刻编号id的帖子收到一个"赞"。现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。具体来说,如果存在某个时刻T满足该帖在[T, T+D)这段时间内(注意是左闭右开区间)收到不少于K个赞,该帖就曾是"热帖"。给定日志,请你帮助小明统计出所有曾是"热帖"的帖子编号。【输入格式】第一行包含三个整数N
2021-04-01 19:46:05
484
5
原创 蓝桥杯整数划分——python
题目如下对于一个正整数n的划分,就是把n变成一系列正整数之和的表达式。注意,分划与顺序无关,例如6=5+1.跟6=1+5是同一种分划,另外,这个整数本身也是一种分划。例如:,对于正整数n=5,可以划分为:1+1+1+1+11+1+1+21+1+31+2+22+31+45输入描述输入一个正整数n输出描述输出n整数划分的总数k输入样例5输出样例7题目解析这里我们对这道题的最好办法就是利用递归来解决,但是这道题该怎么用递归来解决?首先我们创建一个列表,长度为n,之后我们在对1
2021-03-31 18:21:05
869
原创 蓝桥杯分巧克力——python解答
题目如下儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:1. 形状是正方形,边长是整数 2. 大小相同 例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?输入第一行包含两个整数N和K。(1 <=
2021-03-31 14:56:55
450
原创 蓝桥杯寒假作业——python
题目如下现在小学的数学题目也不是那么好玩的。看看这个寒假作业:□ + □ = □□ - □ = □□ × □ = □□ ÷ □ = □(如果显示不出来,可以参见【图1.jpg】)每个方块代表1~13中的某一个数字,但不能重复。比如:6 + 7 = 139 - 8 = 13 * 4 = 1210 / 2 = 5以及:7 + 6 = 139 - 8 = 13 * 4 = 1210 / 2 = 5就算两种解法。(加法,乘法交换律后算不同的方案)你一共找到了多少种
2021-03-31 12:40:06
230
原创 蓝桥杯平方怪圈——python求解
题目如下如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。对新产生的正整数再做同样的处理。如此一来,你会发现,不管开始取的是什么数字,最终如果不是落入1,就是落入同一个循环圈。请写出这个循环圈中最大的那个数字。请填写该最大数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。解析我们在这里直接进行暴力求解,当出现重复的数字的时候我们停止循环,我们将计算的数纳入列表并且将最后的数输出,我们就会看出那些在循环中,然后就可以直接看出最大的了x = 152991447
2021-03-31 10:17:08
435
原创 蓝桥杯买不到的数目——python解决
题目如下小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入:两个正整数,表示每种包装中糖的颗数(都不多于1000)要求输出:一个正整数,表示最大不能买到的糖数不需要考虑无解的情
2021-03-30 19:25:39
499
原创 蓝桥杯包子凑数——python解答
题目如下小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客想买7个包子时,
2021-03-30 18:24:21
933
原创 蓝桥杯日期问题——python求解
题目如下标题:日期问题小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?
2021-03-29 20:56:34
482
原创 蓝桥杯excel地址——python解答
题目如下Excel单元格的地址表示很有趣,它使用字母来表示列号。比如,A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,…当然Excel的最大列号是有限度的,所以转换起来不难。如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?本题目既是要求对输入的数字, 输出其对应的Excel地址表示方式。例如,输入:26则程序应该输出:Z再例如,输入:2054则程序应该输出:BZZ我们约定,输入的整数范围[1
2021-03-29 20:03:44
851
原创 蓝桥杯凑算式——python
题目如下凑算式这个算式中AI代表19的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。题目解析这道题需要用到全排列,但是正好python有着一个这样的函数,我们直接就用python暴力求解了from itertools import permutationsres = 0s = [str(i) for i in range
2021-03-25 20:07:36
524
原创 蓝桥杯平方序列——python解法
题目如下【问题描述】小明想找到两个正整数 X 和 Y,满足• 2019 < X < Y; • 20192, X2, Y**2 组成等差数列。请你求出在所有可能的解中,X + Y 的最小值是多少?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。题解这道题我们还是得进行暴力的求解a = 2019for x in range(2020,100000): b = x**2-a**2
2021-03-25 19:50:30
345
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人