- 博客(162)
- 收藏
- 关注
原创 蓝桥杯最大降雨量
题目由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。这个法术需要用到他手中的49 张法术符,上面分别写着1 至49 这49 个数字。法术一共持续7 周,每天小明都要使用一张法术符,法术符不能重复使用。每周,小明施展法术产生的能量为这周7 张法术符上数字的中位数。法术施展完7 周后,求雨将获得成功,降雨量为7 周能量的中位数。由于干旱太久,小明希望这次求雨的降雨量尽可能大,请大最大值是多少思路假如此时7个周每周的使用的卡片按照从小到大,即中位数的那一天放到了中间找最大能填的数字就可以
2022-01-25 17:55:03
4942
原创 第十一届蓝桥杯大赛软件类省赛第二场C/C++大学B组(python解答)
res = 0for i in range(1, 2021): res += str(i).count('2')print(res)答案:624辗转相除法def func(a,b): x = a % b while (x != 0): a = b b = x x = a % b return bnum=0 for i in range(1,2021): for j in range(1,2021): if func(i,j)=.
2022-01-24 19:40:10
9473
13
原创 蓝桥杯训练营第三周作业
509. 斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。 示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1示例 2:输入:3输出:2解释:F(3) = F(2) + F(1) = 1
2022-01-23 18:03:45
258
原创 蓝桥杯冰雹数
任意给定一个正整数 N,如果是偶数,执行: N/2如果是奇数,执行: N×3+1生成的新的数字再执行同样的动作,循环往复。通过观察发现,这个数字会一会儿上升到很高,一会儿又降落下来。就这样起起落落的,但最终必会落到 “1”。这有点像小冰雹粒子在冰雹云中翻滚增长的样子。比如 N=9 时:9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1可以看到,N=9 的时候,这个“小冰雹”最高冲到了 52 这个高度。给定数字 N,请你求出不大于 N
2022-01-22 22:56:55
5481
原创 蓝桥杯四平方和
四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。 如果把0包括进去,就正好可以表示为4个数的平方和。 比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 7 = 1^2 + 1^2 + 1^2 + 2^2(^符号表示乘方的意思) 对于一个给定的正整数N,可能存在多种平方和的表示法。 要求你对4个数排序:0 <= a <= b <= c <= d 并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法 输
2022-01-21 19:42:32
184
原创 蓝桥杯平方怪圈
如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。对新产生的正整数再做同样的处理。如此一来,你会发现,不管开始取的是什么数字,最终如果不是落入1,就是落入同一个循环圈。请写出这个循环圈中最大的那个数字。请填写该最大数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。当出现重复的数字的时候我们停止循环,我们将计算的数纳入列表并且将最后的数输出,我们就会看出那些在循环中,然后就可以直接看出最大的了x = 1529914471745454768786785r
2022-01-21 19:36:06
132
原创 蓝桥杯移动距离
题目:X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3…当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 ……我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)输入为3个整数 w m n,空格分开,都在1到10000范围内w为排号宽度,m,n为待计算的楼号。要求输出一个整数,表示m n 两楼间最短移动距离。例如:
2022-01-21 19:28:32
149
原创 蓝桥杯奇妙的数字
题目:小明发现了一个奇妙的数字。它的平方和立方正好把 00 ~ 99 的 1010 个数字每个用且只用了一次。你能猜出这个数字是多少吗?for x in range(1,10000): k=list(str(x**2))+list(str(x**3)) nums=list('0123456789') if len(k)==10: for a in k: if a in nums: nums.remove
2022-01-21 19:14:07
229
原创 2018年第九届蓝桥杯 - 省赛 - C/C++大学B组 - B. 激光样式
x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种30台就不好算了,国王只好请你帮忙了。要求提交一个整数,表示30台激光器能形成的样式种数。注意,只提交一个整数,不要填写任何多余的内容。
2022-01-19 22:06:56
117
原创 【思特奇杯·云上蓝桥-算法集训营】第2周
带分数问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。输入格式从标准输入读入一个正整数N (N<1000*1000)输出格式程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意:不要求输出每个表示,只统计有多少表示法!样例输入1100样例输出
2022-01-16 18:22:04
221
原创 306. 累加数
class Solution: def isAdditiveNumber(self, num: str) -> bool: def check(i, j): # print("Checking", i, j) a = int(num[:i+1]) b = int(num[i+1:j+1]) if (i > 0 and num[0] == '0') or ((j>i+1)
2022-01-10 22:49:58
115
原创 71. 简化路径
给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 '/' 开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,'//')都被视为单个斜杠 '/' 。 对于此问题,任何其他格式的点(例如,'...')均被视为文件/目录名称。请注意,返回的 规范路径 必须遵循下述格式:始终以斜杠 '/' 开头
2022-01-06 21:42:42
121
原创 【思特奇杯·云上蓝桥-算法集训营】第1周
1题 跑步训练1题 跑步训练问题描述小明要做一个跑步训练,初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗 600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是 均匀变化的。小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。如果某个时刻小明的体力到达 0,他就停止锻炼, 请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案,答案中只填写数,不填写单位。答案提交这是一道结果填空题,你只需要算出结果后提交即
2022-01-06 21:32:33
361
原创 258. 各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?常规迭代循环class Solution: def addDigits(self, num: int) -> int: def pendind_num(num):
2022-01-04 20:44:09
157
原创 2022. 将一维数组转变成二维数组
给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和 n 。你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组。original 中下标从 0 到 n - 1 (都 包含 )的元素构成二维数组的第一行,下标从 n 到 2 * n - 1 (都 包含 )的元素构成二维数组的第二行,依此类推。请你根据上述过程返回一个 m x n 的二维数组。如果无法构成这样的二维数组,请你返回一个空的二维数组。 示例 1:输入:original = [
2022-01-01 21:07:15
617
原创 35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。 示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,3,5,6
2021-10-31 14:41:09
119
原创 28. 实现 strStr()
实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。 说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。 示例 1:输入:hayst
2021-10-31 14:04:49
116
原创 26. 删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDupli
2021-10-31 13:52:27
148
原创 14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。 提示:1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成
2021-10-27 19:15:13
104
原创 7. 整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0class Solution: def reverse(self
2021-10-25 19:38:01
101
原创 1. 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。 示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], ta
2021-10-24 16:34:32
58
原创 492. 构造矩形
作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:1. 你设计的矩形页面必须等于给定的目标面积。2. 宽度 W 不应大于长度 L,换言之,要求 L >= W 。3. 长度 L 和宽度 W 之间的差距应当尽可能小。你需要按顺序输出你设计的页面的长度 L 和宽度 W。示例:输入: 4输出: [2, 2]解释: 目标面积是 4, 所有可能的构造方案有 [1,4
2021-10-23 14:50:52
62
原创 黑马程序员html5(p30-p59)
表格标签<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <tit..
2021-07-24 18:16:27
477
原创 6. Z 字形变换
题目将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows); 示例 1:
2021-07-20 18:03:11
83
原创 5. 最长回文子串
题目给你一个字符串 s,找到 s 中最长的回文子串。 示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a" 提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成思路取两重循环查找,可以考虑从最大到最小的方向。从len(
2021-07-15 21:00:37
83
原创 264. 丑数 II
给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2:输入:n = 1输出:1解释:1 通常被视为丑数。 提示:1 <= n <= 1690思路官方解法的动态规划主要难点是想到用三个指针去求解,每次放入结果集中的是各自指针对应的dp值乘以其系数,当前
2021-07-14 16:07:06
67
原创 300. 最长递增子序列
题目给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,7,7,7,7
2021-07-13 17:34:17
59
原创 2018年第九届C/C++ A组蓝桥杯省赛真题(python)
第一题:哪天返回题目描述小明被不明势力劫持。后莫名其妙被扔到x星站再无问津。小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文。他决定在x星战打工。好心的老板答应包食宿,第1天给他1元钱。并且,以后的每一天都比前一天多2元钱,直到他有足够的钱买票。请计算一下,小明在第几天就能凑够108元,返回地球。要求提交的是一个整数,表示第几天。请不要提交任何多余的内容。题目分析从1开始的连续奇数相乘等于(最大奇数+1)/2的平方题目代码i=1while i*i<108:
2021-03-20 15:06:08
6328
原创 59. 螺旋矩阵 II
给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]提示:1 <= n <= 20class Solution: def generateMatrix(self, n: int) -> List[List[int]]: if n == 0: re
2021-03-16 20:33:00
76
原创 54. 螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]提示:m == matrix.lengthn == matrix[i].length1 <=
2021-03-15 15:51:03
80
原创 第十二届蓝桥杯第二期模拟赛java组(python)
A小明要用二进制来表示 1 到 10000 的所有整数,要求不同的整数用不同的二进制数表示,请问,为了表示 1 到 10000的所有整数,至少需要多少个二进制位?这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。思路:暴力解def change(num, a): s = [] while num != 0: # 基本数制转换方法 sum = num % a s.appen
2021-03-14 11:27:33
206
原创 数独游戏
你一定听说过“数独”游戏。如【图1.png】,玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个同色九宫内的数字均含1-9,不重复。数独的答案都是唯一的,所以,多个解也称为无解。本图的数字据说是芬兰数学家花了3个月的时间设计出来的较难的题目。但对会使用计算机编程的你来说,恐怕易如反掌了。本题的要求就是输入数独题目,程序输出数独的唯一解。我们保证所有已知数据的格式都是合法的,并且题目有唯一的解。格式要求:输入9行,每行9个数字,0代表未知,其它数字为已知。
2021-03-14 10:20:44
147
原创 (部分)2019年第十届蓝桥杯大赛软件类省赛C/C++大学B组 (A,B,C,D,F)
思路:每一列都整成一个列表,然后全排列a = [97,92,0,0,89,82,0,0,0,95,0,0,94,0,0,0,98,93,0,0]b = [90,85,0,0,83,86,0,97,0,99,0,0,91,83,0,0,83,87,0,99]c = [0,96,0,0,97,0,0,96,89,0,96,0,0,87,98,0,99,92,0,96]d = [0,0,0,80,0,0,87,0,0,0,97,93,0,0,97,93,98,96,89,95]e = [0,0,93.
2021-03-06 23:59:44
753
5
原创 100. 相同的树
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true示例 2:输入:p = [1,2], q = [1,null,2]输出:false示例 3:输入:p = [1,2,1], q = [1,1,2]输出:false提示:两棵树上的节点数目都在范围 [0, 100] 内-104 <= Node.val <=
2021-03-05 20:01:48
189
原创 144. 二叉树的前序遍历
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[1,2]示例 5:输入:root = [1,null,2]输出:[1,2]提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 100进阶:递归算法很
2021-03-04 18:09:50
215
1
原创 338. 比特位计数
给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?要求算法的空间复杂度为O(n)。你能进一步完善解法吗?要求在C++或任何其他语言中不使用任何内置函数(如 C++ 中的 __builtin_
2021-03-03 14:02:43
181
原创 随意组合
小明被绑架到X星球的巫师W那里。其时,W正在玩弄两组数据 (2 3 5 8) 和 (1 4 6 7)他命令小明从一组数据中分别取数与另一组中的数配对,共配成4对(组中的每个数必被用到)。小明的配法是:{(8,7),(5,6),(3,4),(2,1)}巫师凝视片刻,突然说这个配法太棒了!因为:每个配对中的数字组成两位数,求平方和,无论正倒,居然相等:87^2 + 56^2 + 34^2 + 21^2 = 1230278^2 + 65^2 + 43^2 + 12^2 = 12302小明
2021-03-02 23:35:00
175
原创 304. 二维区域和检索 - 矩阵不可变
给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),该子矩形内元素的总和为 8。示例:给定 matrix = [[3, 0, 1, 4, 2],[5, 6, 3, 2, 1],[1, 2, 0, 1, 5],[4, 1, 0, 1, 7],[1, 0, 3, 0, 5]]sumRegion(2,
2021-03-02 22:29:46
67
原创 303. 区域和检索 - 数组不可变
给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点。实现 NumArray 类:NumArray(int[] nums) 使用数组 nums 初始化对象int sumRange(int i, int j) 返回数组 nums 从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点(也就是 sum(nums[i], nums[i + 1], … , nums[j]))示例:输入:[“NumArray”, “sumRange”,
2021-03-01 19:21:29
66
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人