算法刷题
各种题目的解法,包括CCF,各大厂校招题目等
春天不是读书人
写有价值的代码
Make the world a better place
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
刷题中的小trick
trick思路O(1)找到要删除节点的下一个节点,然后将其值等内容覆盖要删除的节点,然后再把下一个节点删除。常规O(n)思路从头指针开始遍历,找到要删除指针的上一个节点,然后指向要删除节点的下一个节点。小问题1)要删除的是最后一个节点,没有下一节点,依然要从头指针开始遍历。...原创 2022-07-31 16:10:34 · 192 阅读 · 0 评论 -
剑指Offer 阅读记录——第二章第三小节:数据结构 (C++)
//Offer_03 剑指offer面试题3:数组中重复的数字//Offer_04 剑指offer面试题4:二维数组中的查找2.3.2-字符串//Offer_05 剑指offer面试题5:替换空格此处注意区分字符string和字符数组的区别char* [];字符串以‘\0’为结束符,对其进行长度修改时可以使用string.resize();链表结构//leetcode_02:两数相加//Offer_06 剑指offer面试题6:从尾到头打印链表2.3.4-树2.3.5-栈//Offer原创 2022-06-21 14:27:51 · 344 阅读 · 0 评论 -
刷题总结:剑指offer 面试题3 不修改数组找出重复的数字(解法错误)
剑指offer 面试题3:数组中重复的数字题目二:不修改数组找出重复的数字(解法错误)书中给出的源码使用二分查找方法,将1~n分成两部分,1-m和m+1-n;该题目作者解释说无法保证找到所有重复的数字,但是在某些测试用例下,则一个重复也找不到,比如数组{2,2,3,3,5,6,7,8},明显数组是1-8之间的8个数字,1-4之间有4个数字,5-8之间有4个数字,则二分查找无法继续进行,所以该例情况下无法通过。因此该方法不能算是一个能解决问题的算法。测试源码如下:测试结果:测试用例11未通过;...原创 2022-06-19 22:12:38 · 298 阅读 · 0 评论 -
西电 2018年复试上机Problem D C语言
西电 2018年复试上机Problem D问题描述:给定一组记录n(n<100)小明各个时期的考试成绩,格式为日期+成绩,中间以空格隔开,记录之间分行输入,例如:2018/6/30 802009/1/1 56…其中日期输入要求年份1996-2100 月份1-12 日期1-31现要求以分数为关键字从大到小对其进行排序,若分数相同则按日期从小到大排序,若分数相同则按日期从小到大进...原创 2020-04-08 13:43:05 · 329 阅读 · 0 评论 -
校招刷题记录
刷题记录目录广度优先搜索三国鼎立广度优先搜索三国鼎立//C++#include<iostream>#include<string>#include<vector>using namespace std;void dfs(vector<vector<int>> &area,int i,int j,int k){ int n=area.size(); int m=area[0].size(); are原创 2022-04-21 21:34:10 · 375 阅读 · 0 评论 -
CCF 2014-9-3 字符串匹配 C语言
题目列表CCF 2014-9-3 字符串匹配 C语言问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。 输入格式 输入的第一行包含一个字符串S,由大小写英文字母组成。 第二行包含一个数字,表示大小写敏感的选项,当...原创 2020-04-08 12:29:34 · 302 阅读 · 0 评论 -
CCF 2013-12-3 最大的矩形 C语言
题目列表CCF 2013-12-3 最大的矩形 C语言问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。 请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。输...转载 2020-04-02 19:41:16 · 436 阅读 · 0 评论 -
CCF 2013-12-2 ISBN号码 C语言
问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二...原创 2020-03-30 19:54:57 · 546 阅读 · 0 评论 -
CCF 2013-12-1 出现次数最多的数 C语言
问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。 输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多...原创 2020-03-30 19:05:33 · 289 阅读 · 0 评论 -
CCF 2014-3-1 相反数 C语言
问题描述 有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。 输入格式 第一行包含一个正整数 N。(1 ≤ N ≤ 500)。 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。 输出格式 只输出一个整数,即这 N 个数中包含多少对相反数。 样例输入51 2 3 -...原创 2020-03-30 18:08:02 · 983 阅读 · 0 评论 -
CCF 2014-9-2 画图 C语言
问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。 下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次...原创 2020-03-30 17:56:45 · 387 阅读 · 0 评论 -
CCF 相邻数对 2014-9-1 C语言
问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。 输入格式 输入的第一行包含一个整数n,表示给定整数的个数。 第二行包含所给定的n个整数。 输出格式 输出一个整数,表示值正好相差1的数对的个数。 样例输入610 2 6 3 7 8样例输出3样例说明 值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。 ...原创 2020-03-30 17:38:45 · 451 阅读 · 0 评论 -
CCF 2014-12-01 门禁系统 C 语言
问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。 输入格式 输入的第一行包含一个整数n,表示涛涛的记录条数。 第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。 输出格式 输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是...原创 2020-03-28 14:22:20 · 255 阅读 · 0 评论 -
CCF 2015-3-2 数字排序 C语言
问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式 输入的第一行包含一个整数n,表示给定数字的个数。 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。 输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出...原创 2020-03-27 13:47:16 · 398 阅读 · 0 评论 -
CCF 2015-03-01 图像旋转 C语言
问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m个整数,表示输入的图像。 输出格式 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩...原创 2020-03-27 12:47:44 · 367 阅读 · 0 评论 -
CCF 2015-09-02 日期计算 C语言
问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有29天。满足下面条件之一的是闰年: 1) 年份是4的整数倍,而且不是100的整数倍; 2) 年份是400的整数倍。 输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。 输入的第二行包含一个整数d,d在1至365之间。 输出格式...原创 2020-03-27 12:03:20 · 454 阅读 · 0 评论 -
CCF 2015-09-01 数列分段 C语言
问题描述 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段? 输入格式 输入的第一行包含一个整数n,表示数列中整数的个数。 第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。 输出格式 输出一个整数,表示给定的数列有多个段。 样例输入88 8 8 0 12 12 8 0样例输出5样例说明...原创 2020-03-27 11:42:37 · 969 阅读 · 0 评论 -
CCF 2015-12-02 消除类游戏 C语言
问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 现在给你一个n行m列的棋盘,棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被...原创 2020-03-27 11:34:32 · 362 阅读 · 0 评论 -
CCF 2015-12-01 数位之和 C语言
问题描述 给定一个十进制整数n,输出n的各位数字之和。 输入格式 输入一个整数n。 输出格式 输出一个整数,表示答案。 样例输入20151220样例输出13样例说明 20151220的各位数字之和为2+0+1+5+1+2+2+0=13。 评测用例规模与约定 所有评测用例满足:0 ≤ n ≤ 1000000000。#include <std...原创 2020-03-27 11:03:30 · 410 阅读 · 0 评论 -
CCF 2016-04-01 折点计数 C语言
问题描述 给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。 给定n个整数a1, a2, …, an表示销售量,请计算出这些天总共有多少个折点。 为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量总是不同的,...原创 2020-03-25 12:01:33 · 364 阅读 · 0 评论 -
CCF 2016-09-02 火车购票 C语言
问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最...原创 2020-03-25 11:41:25 · 856 阅读 · 0 评论 -
CCF 2016-09-01 最大波动 C语言
问题描述 小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。 输入格式 输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。 第二行包含n个正整数,依次表示每天的收盘价格。 输出格式 输出一个整数,表示这只股票这n天中的最大波...原创 2020-03-25 10:54:24 · 367 阅读 · 0 评论 -
CCF 2016-12-01中间数 C语言
问题描述 在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。 给定一个整数序列,请找出这个整数序列的中间数的值。 输入格式 输入的第一行包含了一个整数n,表示整数序列中数的个数。 第二行包含n个正整数,依次表示a1, a2, …, an。 ...原创 2020-03-24 23:15:03 · 368 阅读 · 0 评论 -
CCF 2017-03-02 学生排队 C语言
问题描述 体育老师小明要将自己班上的学生按顺序排队。他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。 例如,下面给出了一组移动的例子,例子中学生的人数为8人。 0)初始队列中学生的学号依次为1, 2, 3, 4, 5, 6, 7, 8; 1)第一次调整,命令为“3号同学向后移动2”,...原创 2020-03-23 00:34:22 · 396 阅读 · 0 评论 -
CCF 2017-03-01 分蛋糕 C语言
问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k。 请问当小明的...原创 2020-03-23 00:03:30 · 417 阅读 · 0 评论 -
CCF2017-09-01打酱油 C语言
问题描述 小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。 输入格式 输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。 输出格式 输出一个整数,表示小明最多可以得到多少瓶酱油。 样例输入40样例输出5样例说明 把40元分成30元和10元,分...原创 2020-03-22 23:07:33 · 483 阅读 · 0 评论 -
CCF2017-12-02 游戏 C语言
问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。 游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时...原创 2020-03-21 21:58:32 · 180 阅读 · 0 评论 -
CCF2017-12-1 最小差值 C语言
问题描述 给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。 输入格式 输入第一行包含一个整数n。 第二行包含n个正整数,相邻整数之间使用一个空格分隔。 输出格式 输出一个整数,表示答案。 样例输入51 5 4 8 20样例输出1样例说明 相差最小的两个数是5和4,它们之间的差值是1。 样例输入59 3 6 1 ...原创 2020-03-21 21:09:21 · 1475 阅读 · 0 评论 -
CCF2018-3-1 跳一跳 C语言
问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱。 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。 如果跳到了方块上,但没有跳到方块的中心则获得1分;跳到方块中心时,若上一次的得分为1分或这是本局游戏的第一次跳跃则此次得分为2分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将+2,+4,+6,+8…)。 现...原创 2020-03-20 14:26:06 · 678 阅读 · 4 评论 -
CCF2018-9-2 买菜 C语言
问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车。具体的,对于小H来说有n个不相交的时间段[a1,b1],[a2,b2]…[an,bn]在装车,对于小W来说有n个不相交的时间段[c1,d1],[c2,d2]…[cn,dn]在装车。其中,一个时间段[s, t]表示的是从时刻s到时刻t这段...原创 2020-03-20 13:20:51 · 413 阅读 · 0 评论 -
CCF2018-09-01 卖菜 C语言
问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。 第一天,每个商店都自己定了一个价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整)。 注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一个相邻的商...原创 2020-03-20 12:49:52 · 225 阅读 · 0 评论 -
CCF2018-12-02 小明放学 C语言
题目背景 汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。 问题描述 一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”...原创 2020-03-20 11:28:28 · 561 阅读 · 0 评论 -
CCF2018-12-01 小明上学 C语言
题目背景 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯 r 秒,黄灯 y 秒,绿灯 g 秒,那么从 0 时刻起,[0,r) 秒内亮红...原创 2020-03-19 23:30:49 · 297 阅读 · 0 评论 -
CCF2019-03-02 二十四点 C语言
#include <stdio.h>#include <stdlib.h>int main(){ int i,j,n; char s[100][10]; int c[7]; scanf("%d",&n); getchar(); for(i=0;i<n;i++) gets(s[i]);...原创 2020-03-19 10:38:51 · 363 阅读 · 0 评论 -
CCF2019-03-01 小中大 C语言
#include <stdio.h>#include <stdlib.h>int main(){ int n,i; int max,min,temp,cen,a[100001]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); m...原创 2020-03-19 00:08:52 · 272 阅读 · 0 评论 -
CCF2019-9-2 小明种苹果(续) C语言
//代码写的不是特别好,有好多地方需要优化//这个已经通过了,现在只是刷题,有时间再改#include <stdio.h>#include <stdlib.h>int main(){ int i,j,n,m,x,sum=0; int a[1000]; int b[1000]; scanf("%d",&n); ...原创 2020-03-17 15:32:26 · 485 阅读 · 0 评论 -
CCF2019-9-1 小明种苹果 C语言
#include <stdio.h>#include <stdlib.h>int main(){ int i,j,a,b,max,t,sum=0,n,m;//sum表示整棵树的果数,t表示每棵树蔬果数 scanf("%d %d",&n,&m); max=0; t=0; for(i=0;i<n;i++)...原创 2020-03-17 14:25:32 · 420 阅读 · 0 评论 -
CCF2019-12-2 垃圾站选址 C语言
C语言代码//2020.03.17#include <stdio.h>#include <stdlib.h>int a[1000][2];int n;int fun(int x,int y){ int i; for(i=0;i<n;i++) { if(a[i][0]==x&&a[i][1]==y...原创 2020-03-17 11:21:58 · 450 阅读 · 2 评论 -
CCF2019-12-1 报数 C语言
#include <stdio.h>#include <stdlib.h>int is77(int n){ while(n) if(n % 10 == 7) return 1; else n /= 10; return 0;}int main(){ int i,n,sum=1,j=1; int a...原创 2020-03-16 22:17:44 · 375 阅读 · 0 评论 -
CCF 历年习题 刷题记录
CCF刷题试题编号代码2019-12-11002019-12-22019-12-3原创 2020-03-16 22:13:29 · 343 阅读 · 0 评论
分享