C/C++试题
C/C++试题
Fourier_xyz
这个作者很懒,什么都没留下…
展开
-
C++ & Ruby: LeetCode 846. 一手顺子
Alice 手中有一把牌,她想要重新排列这些牌,分成若干组,使每一组的牌数都是 groupSize ,并且由 groupSize 张连续的牌组成。 给你一个整数数组 hand 其中 hand[i] 是写在第 i 张牌,和一个整数 groupSize 。如果她可能重新排列这些牌,返回 true ;否则,返回 false 。 示例 1: 输入:hand = [1,2,3,6,2,3,4,7,8], groupSize = 3 输出:true 解释:Alice 手中的牌可以被重新排列为 [1,2,3],[2,3,原创 2021-12-30 19:08:37 · 503 阅读 · 0 评论 -
C++: 中等试题 LeetCode 430. 扁平化多级双向链表 (粗暴解法)
扁平化多级双向链表 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。 示例 1: 输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12] 输出:[1,2,3,7,8,11,12,9,10,4,5,6] 解释: 输入的多.原创 2021-09-29 00:45:14 · 79 阅读 · 0 评论 -
C++: 中等试题 LeetCode 274. H 指数 (两种方法)
给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。 h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。且其余的 N - h 篇论文每篇被引用次数 不超过 h 次。 例如:某人的 h 指数是 20,这表示他已发表的论文中,每篇被引用了至少 20 次的论文总共有 20 篇。 示例: 输入:citations = [3,0,6,1,5] 输出:原创 2021-07-12 13:29:19 · 268 阅读 · 0 评论 -
C++: 中等试题 LeetCode 236. 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1: 输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 输出:3 解释:节点 5 和节点 1 的最近公共祖先是节点 3 。 示例 2: 输入:root = [3,5,1,6,2,0,8,null,null,原创 2021-06-15 19:39:28 · 129 阅读 · 0 评论 -
C++: 简单试题 LeetCode 852. 山脉数组的峰顶索引
符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[1] < … arr[i-1] < arr[i] arr[i] > arr[i+1] > … > arr[arr.length - 1] 给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < … arr[i - 1] < a原创 2021-06-15 16:08:12 · 144 阅读 · 0 评论 -
C++: 简单试题 LeetCode 374. 猜数字大小
猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。 你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0): -1:我选出的数字比你猜的数字小 pick < num 1:我选出的数字比你猜的数字大 pick > num 0:我选出的数字和你猜的数字一样。恭喜!你猜对了!pick == num原创 2021-06-15 15:40:13 · 294 阅读 · 2 评论 -
C: 试题 选出晚会节目 第十一届蓝桥杯校内模拟赛第10题
小明要组织一台晚会,总共准备了 n 个节目。然后晚会的时间有限,他只能最终选择其中的 m 个节目。 这 n 个节目是按照小明设想的顺序给定的,顺序不能改变。 小明发现,观众对于晚上的喜欢程度与前几个节目的好看程度有非常大的关系,他希望选出的第一个节目尽可能好看,在此前提下希望第二个节目尽可能好看,依次类推。 小明给每个节目定义了一个好看值,请你帮助小明选择出 m 个节目,满足他的要求。 输入格式 输入的第一行包含两个整数 n, m ,表示节目的数量和要选择的数量。 第二行包含 n 个整数原创 2021-05-21 23:08:16 · 143 阅读 · 0 评论 -
C: 试题 空地长草 第十一届蓝桥杯校内模拟赛第8题
问题描述 小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1。 小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。 这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展, 这四小块空地都将变为有草的小块。 请告诉小明,k 个月后空地上哪些地方有草。 #include<stdio.h> #include<string.h> int main() { char a[1000原创 2021-05-21 23:02:28 · 204 阅读 · 0 评论 -
C: 试题 辅音元音字母英语单词 第十一届蓝桥杯校内模拟赛第7题
问题描述 小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段, 第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。 给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。 元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。 输入格式 输入一行,包含一个单词,单词中只包含小写英文字母。 输出格式 输出答案,或者为yes,或者为no。 样例输入 la原创 2021-05-21 22:58:29 · 309 阅读 · 0 评论 -
C: 试题 递增三元组的中心 第十一届蓝桥杯校内模拟赛第6题
问题描述 在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k], 则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。 给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。 输入格式 输入的第一行包含一个整数 n。 第二行包含 n 个整数 a[1], a[2], …, a[n],相邻的整数间用空格分隔,表示给定的数列。 输原创 2021-05-21 22:53:11 · 156 阅读 · 0 评论 -
C: 试题 数位递增的数 第十一届蓝桥杯校内模拟赛第5题
问题描述 一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数, 例如1135是一个数位递增的数,而1024不是一个数位递增的数。 给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数? 输入格式 输入的第一行包含一个整数 n。 输出格式 输出一行包含一个整数,表示答案。 #include<stdio.h> #include<string.h> int main() { unsigned long long int i,t; unsigne原创 2021-05-21 22:47:30 · 334 阅读 · 1 评论 -
C: 试题 I糖果 第十届蓝桥杯C/C++ A组(dp状压+回溯)
【问题描述】 糖果店的老板一共有 M 种口味的糖果出售。为了方便描述,我们将 M 种口味编号 1 ~ M。 小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而 是 K 颗一包整包出售。 幸好糖果包装上注明了其中 K 颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。 给定 N 包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。 【输入格式】 第一行包含三个整数 N、M 和 K。 接下来 N 行每行 K 这整数 T1, T2, · · · , TK,代表一包糖果的口味。 【输出原创 2021-05-21 22:31:10 · 146 阅读 · 0 评论 -
C: 试题 I糖果 第十届蓝桥杯C/C++ A组(纯dp状压)
【问题描述】 糖果店的老板一共有 M 种口味的糖果出售。为了方便描述,我们将 M 种口味编号 1 ~ M。 小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而 是 K 颗一包整包出售。 幸好糖果包装上注明了其中 K 颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。 给定 N 包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。 【输入格式】 第一行包含三个整数 N、M 和 K。 接下来 N 行每行 K 这整数 T1, T2, · · · , TK,代表一包糖果的口味。 【输出原创 2021-05-21 22:23:48 · 169 阅读 · 0 评论 -
C: 试题 H修改数组 第十届蓝桥杯C/C++ A组
【问题描述】 给定一个长度为 N 的数组 A = [A1, A2, · · · AN],数组中有可能有重复出现的整数。 现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改 A2, A3, · · · , AN。 当修改 Ai 时,小明会检查 Ai 是否在 A1 ~ Ai?1 中出现过。 如果出现过,则小明会给 Ai 加上 1 ;如果新的 Ai 仍在之前出现过,小明会持续给 Ai 加 1 ,直到 Ai 没有在 A1 ~ Ai?1 中出现过。 当 AN 也经过上述修改之后,显然 A 数组中就没有重原创 2021-05-21 21:24:31 · 202 阅读 · 0 评论 -
C: 试题 G外卖店优先级 第十届蓝桥杯C/C++ A组
【问题描述】 “饱了么”外卖系统中维护着 N 家外卖店,编号 1 ~ N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。 每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加, 每有一单优先级加 2。 如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。 给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓存中。 【输入格式】 第一行包含 3 个整原创 2021-05-21 21:21:35 · 281 阅读 · 0 评论 -
C:试题 数轴上的n条线段最大价值和
问题描述 给出在数轴上的n条线段的左右端点的坐标l,r和它们的价值v,请你选出若干条没有公共点的线段(端点重合也算有公共点), 使得它们的价值和最大,输出最大价值和。 输入格式 第一行一个正整数n。 接下来n行,每行三个整数l,r,v分别表示一条线段的左端点,右端点和价值。l<r,v>0。 输出格式 输出一个整数表示最大价值和。 样例输入 4 1 3 4 3 5 7 5 7 3 2 6 8 样例输出 8 暴力搜。。。 #include <stdio.h> int n; i原创 2021-05-11 21:42:42 · 209 阅读 · 0 评论 -
C:试题 A同学可以得到多少朵小红花
问题描述 A同学的学习成绩十分不稳定,于是老师对他说:“只要你连续4天成绩有进步,那我就奖励给你一朵小红花。” 可是这对于A同学太困难了。于是,老师对他放宽了要求:“只要你有4天成绩是递增的,我就奖励你一朵小红花。” 即只要对于第i、j、k、l四天,满足i<j<k<l并且对于成绩wi<wj<wk<wl,那么就可以得到一朵小红花的奖励。 现让你求出,A同学可以得到多少朵小红花。 输入格式 第一行一个整数n,表示总共有n天。第二行n个数,表示每天的成绩wi。 输出格式原创 2021-05-11 21:34:55 · 346 阅读 · 0 评论 -
C:试题 计算末尾有几个零
问题描述 计算1*(1+k)(1+2k)(1+3k)…(1+n*k-k)的末尾有多少个0,最后一位非0位是多少。 输入格式 输入的第一行包含两个整数n, k。 输出格式 输出两行,每行一个整数,分别表示末尾0的个数和最后一个非0位。 样例输入 15 2 样例输出 0 5 数据规模和约定 1<=k<=10,1<=n<=1000000。 #include <stdio.h> int main() { int n,k,N,Z; int i; scanf("原创 2021-05-11 21:28:26 · 630 阅读 · 0 评论 -
C:试题 算法提高 小写转换为大写
问题描述 输入一个小写字母,转换成大写字母。 输入格式 输入小写字母 输出格式 输出转换后的大写字母 样例输入 a 样例输出 A 若你忘了小写字母和大写字母的ASCII码差,你可以这样做: #include <stdio.h> int main() { int balance; char n; int n1; scanf("%c",&n); n1=(int)n; balance='A'-'a'; n1+=balance; printf("%c",n1); r原创 2021-05-11 20:13:22 · 113 阅读 · 0 评论