![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
记录有关算法竞赛,如CCF-CSP认证、天梯赛、LeetCode、牛客网等刷题的题目和题解
全幼儿园最聪明
计算机专业硕士在读
展开
-
JavaScript | 手写代码实现 Promise.all 方法
JavaScript 实现 Promise.all 方法function myPromiseAll(list) { let resArray = []; let count = 0; return new Promise((resolve, reject) => { list.forEach((item) => { item.then((res) => { resArray.push(res); count++;原创 2021-07-15 00:57:25 · 332 阅读 · 0 评论 -
JavaScript | 写一个加法函数(sum),使他可以同时支持sum(x,y)和sum(x)(y)两种调用方式
function sum() { if(arguments.length == 1) { const x = arguments[0]; return function (y) { return x + y; } } else { let ans = 0; for(let i = 0; i < arguments.length; i++) { ans原创 2021-07-12 00:13:54 · 786 阅读 · 0 评论 -
C++ vector 相关用法总结
使用 C++ 练习算法题,vector 的用法十分重要。故将遇到的 vector 有关用法记录下来,持续更新中~1.数组的起始和结束位置vector<int>a;a.begin()a.end()2.数组的长度vector<int>a;a.size()3.创建一个长度为10的 vector 并将每个元素的值均初始化为1vector<int>a(10, 1);4.计算数组元素之和accumulate函数有三个参数,前两个参数表示求和的起止范围,第三原创 2021-06-12 21:03:18 · 249 阅读 · 0 评论 -
天梯赛-练习集L1-017 到底有多二 (15 分) 注意点:C语言百分号的输出
题目一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。输入格式:输入第一行给出一个不超过50位的整数N。输出格式:在一行中输出N犯二的程度,保留小数点后两位。输入样例:-13142223336输出样例:81.82%注意原创 2021-03-18 11:15:40 · 242 阅读 · 0 评论 -
CCF201912-1报数(C语言100分)
题目C语言源代码(100分)#include <stdio.h>int is_7included(int n) //判断当前报的数是否含有7的子函数 { int number[4], i = 0; while(n > 0) { number[i] = n % 10; n /= 10; i++; } for(i = 0; i < 4; i++) { if(number[i] == 7) return 1; } return 0;}原创 2020-09-12 16:55:56 · 530 阅读 · 0 评论 -
CCF201909-1小明种苹果(C语言100分)
题目C语言源代码(100分)#include <stdio.h>#include <stdlib.h>int main(){ int n, m, i, j, drop[1000], apple[1000][2], sum = 0, max = 0, index = 0; scanf("%d %d", &n, &m); for(i = 0; i < n; i++) { sum = 0; scanf("%d", &apple[原创 2020-09-12 16:01:38 · 454 阅读 · 0 评论 -
CCF201809-2买菜(C语言,从10分到100分)
题目问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车。具体的,对于小H来说有n个不相交的时间段[a1,b1],[a2,b2]…[an,bn]在装车,对于小W来说有n个不相交的时间段[c1,d1],[c2,d2]…[cn,dn]在装车。其中,一个时间段[s, t]表示的是从时刻s到时刻t这段时间,时长为t-s。 由于他们是好朋友,他们都在广场上装车的时候会聊天,他们想知道他们可以聊多长时间。原创 2020-09-11 17:10:46 · 956 阅读 · 0 评论 -
CCF201709-2公共钥匙盒(C语言100分,使用C++sort函数)
题目问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。 钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。一串钥匙没有固定的悬挂位置,但钥匙上有标识,所以老师们不会弄混钥匙。 每次取钥匙的时候,老师们都会找到自己所需要的钥匙将其取走,而不会移动其他钥匙。每次还钥匙的时候,还钥匙的老师会找到最左边的空的挂钩,将钥匙挂在这个挂钩上。如果原创 2020-09-10 20:23:39 · 278 阅读 · 0 评论 -
CCF201703-2学生排队(C语言100分)
题目问题描述 体育老师小明要将自己班上的学生按顺序排队。他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。 例如,下面给出了一组移动的例子,例子中学生的人数为8人。 0)初始队列中学生的学号依次为1, 2, 3, 4, 5, 6, 7, 8; 1)第一次调整,命令为“3号同学向后移动2”,表示3号同学出队,向后移动2名同学的距离,再插入到队列中,新队列中学生的学号依次为1, 2, 4, 5,原创 2020-09-10 19:35:29 · 635 阅读 · 0 评论 -
CCF201412-2-Z字形扫描(C语言100分)
问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示:对于下面的4×4的矩阵, 1 5 3 9 3 7 5 6 9 4 6 4 7 3 1 3 对其进行Z字形扫描后得到长度为16的序列: 1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3 请实现一个Z字形扫描的程序,给定一个n×n的矩阵,输出对这个矩阵进行Z字形扫描的结果。输入格式 输入的第一行包含一个整数n,表原创 2020-09-08 11:06:32 · 804 阅读 · 2 评论 -
CCF201409-2画图(C语言100分)
问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。 下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅为说明方便。在这里插入图片描述给出所有原创 2020-09-07 20:06:52 · 580 阅读 · 0 评论 -
CCF201403-2窗口(C语言)
问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。 当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。 现在我们希望你写一个程序模拟点击窗口的过程。输入格式 输入的第一行有两个正整数,即 N 和 M原创 2020-09-06 15:05:42 · 222 阅读 · 0 评论 -
CCF201812-1小明上学(C语言100分)
题目背景小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯 r 秒,黄灯 y 秒,绿灯 g 秒,那么从 0 时刻起,[0,r) 秒内亮红灯,车辆不许通过;[r, r+g) 秒内亮绿灯,车辆允许通过;[r+g, r+g+y) 秒内亮黄灯,车辆不许通过,然原创 2020-09-03 18:48:15 · 259 阅读 · 0 评论 -
CCF201903-1小中大(C语言)
注意点:1.输入的有序数组可能升序,也可能降序2.若n是偶数,中位数是中间两个数的平均数,除以2结果可能不是整数,需进行处理,保留一位小数#include <stdio.h>#define MAX 100000int main(){ int i, j, n, array[MAX], temp; int max, mid, min; scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &array.原创 2020-09-02 16:24:24 · 419 阅读 · 0 评论 -
CCF202006-1线性分类器(C语言100分)
#include <stdio.h>#define DOT_MAX 1000#define LINE_MAX 20struct Dot{ int x; int y; char type;}dot[DOT_MAX]; struct Line{ int t0; int t1; int t2;}line[LINE_MAX];int is_perfect_depart(int dot_num, int t0, int t1, int t2, int state){原创 2020-08-29 19:59:28 · 906 阅读 · 0 评论 -
CCF201612-2工资计算(C语言)
题目问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算: 1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元; 2) A中不超过1500元的部分,税率3%; 3) A中超过15...原创 2020-02-08 20:52:10 · 2467 阅读 · 0 评论 -
CCF201712-2游戏(C语言)
题目问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。 游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小...原创 2020-02-08 19:58:07 · 400 阅读 · 0 评论 -
CCF201512-2消除类游戏(C语言)
题目问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 现在给你一个n行m列的棋盘,棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列...原创 2020-02-08 19:29:39 · 1031 阅读 · 0 评论 -
CCF201503-2数字排序(C语言)
题目问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。输入格式 输入的第一行包含一个整数n,表示给定数字的个数。 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大...原创 2020-02-07 22:17:28 · 648 阅读 · 0 评论 -
CCF201503-1图像旋转(C语言100分)
题目问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m个整数,表示输入的图像。输出格式 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。...原创 2020-02-07 21:30:47 · 683 阅读 · 0 评论 -
CCF201403-1相反数(C语言)
题目问题描述 有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。输入格式 第一行包含一个正整数 N。(1 ≤ N ≤ 500)。 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。输出格式 只输出一个整数,即这 N 个数中包含多少对相反数。样例输入51 2 3 -1 -2样...原创 2020-02-07 20:58:10 · 1147 阅读 · 0 评论 -
CCF201409-3字符串匹配(C语言)
题目问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。输入格式 输入的第一行包含一个字符串S,由大小写英文字母组成。 第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。...原创 2020-02-07 20:38:38 · 607 阅读 · 3 评论 -
CCF201612-1中间数(C语言)
题目问题描述 在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。 给定一个整数序列,请找出这个整数序列的中间数的值。输入格式 输入的第一行包含了一个整数n,表示整数序列中数的个数。 第二行包含n个正整数,依次表示a1, a2, …, an。输出...原创 2020-02-06 22:39:19 · 964 阅读 · 0 评论 -
CCF201409-1相邻数对(C语言)
题目试题编号: 201409-1试题名称: 相邻数对时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。输入格式 输入的第一行包含一个整数n,表示给定整数的个数。 第二行包含所给定的n个整数。输出格式 输出一个整数,表示值正好相差1的数对的个数。样例输入610 2 6 3 7 8...原创 2020-02-06 22:03:51 · 1118 阅读 · 0 评论 -
CCF201803-2碰撞的小球(C语言)
题目问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。 当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动...原创 2020-02-05 22:19:49 · 592 阅读 · 1 评论 -
CCF201803-1跳一跳(C语言)
题目问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱。 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。 如果跳到了方块上,但没有跳到方块的中心则获得1分;跳到方块中心时,若上一次的得分为1分或这是本局游戏的第一次跳跃则此次得分为2分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将+2,+4,+6,+8…)。...原创 2020-02-05 21:47:51 · 317 阅读 · 0 评论 -
CCF201503-1分蛋糕(C语言)
题目问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k。 请问当...原创 2020-02-05 21:32:38 · 335 阅读 · 0 评论 -
CCF201509-2日期计算(C语言)
题目问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有29天。满足下面条件之一的是闰年: 1) 年份是4的整数倍,而且不是100的整数倍; 2) 年份是400的整数倍。输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。 输入的第二行包含一个整数d,d在1至365之间。输出格式 ...原创 2020-02-05 20:59:44 · 559 阅读 · 1 评论 -
CCF201509-1数列分段(C语言)
题目问题描述 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?输入格式 输入的第一行包含一个整数n,表示数列中整数的个数。 第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。输出格式 输出一个整数,表示给定的数列有多个段。样例输入88 8 8 0 12 12 8 0样例输出5样例说明 8 8...原创 2020-02-05 20:19:41 · 1405 阅读 · 0 评论 -
CCF201512-1数位之和(C语言)
题目问题描述 给定一个十进制整数n,输出n的各位数字之和。输入格式 输入一个整数n。输出格式 输出一个整数,表示答案。样例输入20151220样例输出13样例说明 20151220的各位数字之和为2+0+1+5+1+2+2+0=13。评测用例规模与约定 所有评测用例满足:0 ≤ n ≤ 1000000000。C语言实现的源代码(100分)#include ...原创 2020-02-05 19:52:32 · 493 阅读 · 0 评论 -
CCF201712-1最小差值(C语言100分/使用C++ sort函数)
题目问题描述 给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。输入格式 输入第一行包含一个整数n。 第二行包含n个正整数,相邻整数之间使用一个空格分隔。输出格式 输出一个整数,表示答案。样例输入51 5 4 8 20样例输出1样例说明 相差最小的两个数是5和4,它们之间的差值是1。样例输入59 3 6 1 3样例输出0...原创 2020-02-05 19:36:15 · 1682 阅读 · 0 评论 -
CCF201609-2火车购票(如何从90分到100分 C语言)
题目问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在...原创 2020-02-04 22:01:53 · 783 阅读 · 1 评论 -
CCF201809-1卖菜(C语言)
题目问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。 第一天,每个商店都自己定了一个价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整)。 注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一个相...原创 2020-02-04 21:05:15 · 158 阅读 · 0 评论 -
CCF201604-1折点计数(C语言)
题目问题描述 给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。 给定n个整数a1, a2, …, an表示销售量,请计算出这些天总共有多少个折点。 为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量总是...原创 2020-02-04 21:02:50 · 559 阅读 · 0 评论 -
CCF201412-1门禁系统(C语言)
题目问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。输入格式 输入的第一行包含一个整数n,表示涛涛的记录条数。 第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。输出格式 输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次...原创 2020-02-04 20:57:23 · 249 阅读 · 0 评论 -
CCF201312-2 ISBN号码(C语言)
题目问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社...原创 2020-02-04 20:47:42 · 662 阅读 · 0 评论 -
CCF201609-1最大波动(C语言)
题目问题描述 小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。输入格式 输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。 第二行包含n个正整数,依次表示每天的收盘价格。输出格式 输出一个整数,表示这只股票这n天中的最大波动值。...原创 2020-02-04 20:40:59 · 211 阅读 · 0 评论 -
CCF201709-1打酱油(C语言)
题目问题描述 小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。输入格式 输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。输出格式 输出一个整数,表示小明最多可以得到多少瓶酱油。样例输入40样例输出5样例说明 把40元分成30元和10元,分别买3瓶和1...原创 2020-02-04 20:27:28 · 586 阅读 · 0 评论 -
CCF201312-1出现次数最多的数(C语言)
题目链接CCF201312-1出现次数最多的数思路分析1.将输入的整数用哈希的方法直接映射到一个数组flag的下标,即数组的下标值即为原本的数值,而存储的数值为该数出现的次数(初始化数组值均为0)。2.遍历数组,找到值最大的最小下标值即可。C语言实现的源代码(100分)/*问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式 ...原创 2020-02-04 16:05:09 · 863 阅读 · 1 评论