摘要: 第一章 二分查找和简单查找 简单查找就是顺序一个一个的查找。缺点是复杂度o(n)比较高,好处是无论什么的原始数据都可以利用。 二分查找,二分查找的前提必须是有序的不然就会失去意义,二分查找利用有序的特点,每次都可以去掉当前数组长度的一半,所以复杂度为o(log2(n)) 代码: #include<s 阅读全文
posted @ 2020-10-21 21:37 罪梦者 阅读(127) 评论(0) 推荐(0)
摘要: 排序 本题不限定排序算法,所给的数据集有种情况: 小规模(n<1000)无序数据; 小规模(n<1000)递增数据; 小规模(n<1000)递减数据; 大规模(10000<n<1000000)无序数据; 大规模(10000<n<1000000)递增数据; 大规模(10000<n<1000000)递减 阅读全文
posted @ 2020-10-21 21:05 罪梦者 阅读(418) 评论(0) 推荐(0)
摘要: 7-81 Least Prefix (10分) Given a non-empty array of N integers A, please find the smallest integer P such that all the numbers in A are in the subarray 阅读全文
posted @ 2020-10-21 21:04 罪梦者 阅读(822) 评论(0) 推荐(0)
摘要: 7-80 身份证校验 (100分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码M组成。校验码M的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系 阅读全文
posted @ 2020-10-21 21:02 罪梦者 阅读(373) 评论(0) 推荐(0)
摘要: 7-79 超市贴花 (5分) 某家超市有一种促销手段,购买金额超过一定阈值就随机给一个贴花。贴花有不同种类的,种类以编号表示,编号是一个1到100之间的数字。当收集到连续编号的三张贴花时,就可以换一个小礼物。 小明经常去某家超市购物,积攒了不少贴花,你帮他看看,能换多少小礼物。 输入格式: 首先是一 阅读全文
posted @ 2020-10-21 21:01 罪梦者 阅读(914) 评论(0) 推荐(0)
摘要: 7-78 切割绳子 (5分) 有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长? 输入格式: 第一行两个整数n和k(1<n<10000; 1<k<10000)。 接下来n行,描述了每条绳子的长度Li,Li也是整数。 输出格式: 切割后每条绳子的最大长 阅读全文
posted @ 2020-10-21 21:00 罪梦者 阅读(456) 评论(0) 推荐(0)
摘要: 7-77 御膳房 (5分) 御膳房要准备皇帝的早餐,非常的辛苦。辛苦是因为这个皇帝很挑剔,要求相邻两天不能吃相同的早餐。根据采买到的原料,御膳房准备了未来几天的早餐的菜单。但是厨师不懂数学,排出的菜单有相邻两天重复的。你能否根据菜单,判断能不能调整成相邻两天不重复的呢? 输入格式: 首先是一个正整数 阅读全文
posted @ 2020-10-21 20:55 罪梦者 阅读(886) 评论(0) 推荐(0)
摘要: 7-76 PAT考试日期 (5分) PAT(编程能力测试)考试一年三次,分别在春、秋和冬季举行。考试需要现场机房场地和工作人员的辛苦工作,所以要计划考试的日期非常困难。因为除了要考虑学校开学、考试等时间,还要考虑负责老师的时间。由于各校的负责老师都非常非常忙,他们不但担任考试的组织工作,而且还有常规 阅读全文
posted @ 2020-10-21 17:15 罪梦者 阅读(894) 评论(1) 推荐(0)
摘要: 7-75 去掉重复的数据 (10分) 在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。 你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,去掉所有重复的数字。最后按照输入顺序输出没有重复数字的数据。所有重复的数字只保留第一次 阅读全文
posted @ 2020-10-21 17:05 罪梦者 阅读(2818) 评论(0) 推荐(0)
摘要: 7-74 有重复的数据I (10分) 在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。 你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。 输入格式: 你的程序首先会读到一 阅读全文
posted @ 2020-10-21 17:04 罪梦者 阅读(1735) 评论(0) 推荐(0)
摘要: 7-73 校门外的树 (5分) 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置。数轴上的每个整数点,即0、1、2、......、L,都种有一棵树。 由于马路上有一些区域要用来建车站。这些区域用它们在数轴上的 阅读全文
posted @ 2020-10-21 17:02 罪梦者 阅读(295) 评论(0) 推荐(0)
摘要: 7-72 找画笔 (10分) 豆豆对数字的执着,让他在理科领域游刃有余,但他近乎疯狂的投入也使父母有些担心,为了让孩子能够全面发展,决定拓宽他的学习领域。正好家旁边有个绘画培训中心,父母就给豆豆报了名。学习绘画的第一天就让豆豆产生了浓厚的兴趣,还主动要求买了很多很多的画笔。画笔有多种颜色,豆豆有一个 阅读全文
posted @ 2020-10-21 16:58 罪梦者 阅读(969) 评论(0) 推荐(0)
摘要: 7-71 期末分数排序 (10分) 考试结束了,全班同学的分数都出来了。老师需要对分数做一次排序,看看从高到低,分数的排列是怎样的。 输入格式: 第一行是一个n,表示班级同学的人数,1<=n<=500000。 第二行开始有n个分数,0<=分数<=100,分数都是整数,没有零点五分。 输出格式: 输出 阅读全文
posted @ 2020-10-21 16:56 罪梦者 阅读(2767) 评论(0) 推荐(0)
摘要: 7-70 打台球 (5分) 杨同学迷上了一款叫诺斯克的台球游戏,而且随着练习的深入,他总是能在某些神奇的时刻开启外挂模式,此时小李将指哪打哪,直至无球可打。现在杨同学想让你帮他计算下当他开启外挂模式的时候最多可以取得多少分数。注意:台面上的球数可能与传统斯诺克的不同。 比赛的基本规则如下: 彩球共分 阅读全文
posted @ 2020-10-21 16:55 罪梦者 阅读(1157) 评论(0) 推荐(0)
摘要: 7-69 数组元素的删除 (5分) 完成数组元素的移动功能:假设数组有n个元素,输入一个数x,把数组的第x个位置的元素删除了,后面的元素依次前进一个位置。 重复若干次这样的删除,得到最后的结果。 输入格式: 第一行包括一个整数n(1<=n<=100),表示数组元素的个数。 第二行输入n个数组元素,均 阅读全文
posted @ 2020-10-21 16:51 罪梦者 阅读(1593) 评论(0) 推荐(0)
摘要: 7-68 数组元素移动 (5分) 完成数组元素的移动功能:假设数组有n个元素,输入一个数x,把数组的第x个位置的元素先保存起来,然后把x+1到n的元素,依次往前移一位,最后将原来的第x个位置的元素放在数组的最后。 重复若干次这样的移动,得到最后的结果。 输入格式: 第一行包括一个整数n(1<=n<= 阅读全文
posted @ 2020-10-21 16:48 罪梦者 阅读(1411) 评论(0) 推荐(0)
摘要: 7-67 摘苹果 (5分) 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出很多苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知每个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到 阅读全文
posted @ 2020-10-21 16:47 罪梦者 阅读(345) 评论(0) 推荐(0)
摘要: 7-66 结伴同行去秋游 (5分) 可以去秋游啦!同学们别提多高兴了!老师说,单独行动有点危险,那么我们还是结伴同行吧。结伴的规则是这样的:排在最前的一个人和排在最后的那个人结成同伴,排在第2个的与排在倒数第2个的结成同伴......依次类推,2个一组成同伴。好,请马上排出来吧!老师语音一落,同学们 阅读全文
posted @ 2020-10-21 16:46 罪梦者 阅读(1887) 评论(0) 推荐(0)
摘要: 7-65 评委打分 (5分) 班级里要搞智力竞赛啦!同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分,最后结果如何呢? 输入格式: 第一行有十个整数,表示十位同学的初始分。第二行一个整数n,表示有n道题竞赛。 接下去有n行 阅读全文
posted @ 2020-10-21 16:44 罪梦者 阅读(680) 评论(0) 推荐(0)
摘要: 7-64 整理队伍 (5分) 体育课上,教数学的体育老师怎么看这个队伍都不大对劲,于是对队伍进行了调整。张三,你和李四换一下位置......经过几次调整,队伍终于变得有条不紊了。 输入格式: 输入第一行包括一个整数n,表示班级里总共有n个人(1<=n<=100);第二行包括n个整数,表示同学们原来的 阅读全文
posted @ 2020-10-21 16:43 罪梦者 阅读(671) 评论(0) 推荐(0)
摘要: 7-63 分两列 (5分) 一列纵队在上课的时候会造成很大的麻烦,体育老师常用的办法就是让同学们1、2报数,然后报2的同学向后退一步。现在我们已经知道一列纵队时候同学的学号分布,那么你能输出分成两列后同学的学号么? 输入格式: 第一行包括一个数n,表示班级里有n位学生,班级人数至少是1,不超过100 阅读全文
posted @ 2020-10-21 16:42 罪梦者 阅读(550) 评论(0) 推荐(0)
摘要: 7-62 向后转 (5分) 体育课要开始啦,在体育课之前必不可少的就是整队。一开始,全班同学都按身高排成了一列纵队,可是不巧的是,同学们都背对着体育老师,这个时候,只见体育老师深吸一口气,大声地喊了一句:“向后转!” 小周是一名小小程序猿,看到这样的场景,他不禁想到了一个问题,假设在老师喊口号之前, 阅读全文
posted @ 2020-10-21 16:39 罪梦者 阅读(200) 评论(0) 推荐(0)
摘要: 7-61 369寝室 (10分) 369寝室是比较特殊的寝室,因为别的寝室都住了四个人,而369寝室只有三个人。也因为这个原因,寝室里的三位同学感情特别好。但是,毕业在即,三位小伙伴马上要分别。为了在未来的某个日子可以见面,三位小伙伴有了一个约定,假设在未来的某一年,三位小伙伴的年龄的末尾正好出现3 阅读全文
posted @ 2020-10-21 16:38 罪梦者 阅读(874) 评论(0) 推荐(0)
摘要: 7-60 致命的珠宝 (10分) Mini使用神风无影来到了大魔王所居住的洞穴,门口却有着险恶的机关。门上有着N个宝珠,每个宝珠都有一个数字。传说,只要宝珠里的两颗珠撞在一起后就会发出奇异的光彩,但发出的光彩有可能是致命的,也有可能是打开前进之路的钥匙。Mini询问老者后,得知要想打开这扇门,就得找 阅读全文
posted @ 2020-10-21 16:37 罪梦者 阅读(243) 评论(0) 推荐(0)
摘要: 7-59 GPS数据处理 (15分) NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。G 阅读全文
posted @ 2020-10-21 16:35 罪梦者 阅读(300) 评论(0) 推荐(0)
摘要: 7-58 有重复的数据 (10分) 在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。 你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。 输入格式: 你的程序首先会读到一个 阅读全文
posted @ 2020-10-21 16:34 罪梦者 阅读(725) 评论(0) 推荐(0)
摘要: 7-57 正整数A+B (15分) 题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。 输入格式: 输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、 阅读全文
posted @ 2020-10-21 16:29 罪梦者 阅读(816) 评论(0) 推荐(0)
摘要: 7-56 字符串循环左移 (20分) 输入一个字符串和一个非负整数N,要求将字符串循环左移N次。 输入格式: 输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。 输出格式: 在一行中输出循环左移N次后的字符串。 输入样例: Hello World! 2 输 阅读全文
posted @ 2020-10-21 16:28 罪梦者 阅读(196) 评论(0) 推荐(0)
摘要: 7-55 求一批整数中出现最多的个位数字 (20分) 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式: 输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围 阅读全文
posted @ 2020-10-21 16:27 罪梦者 阅读(555) 评论(0) 推荐(0)
摘要: 7-54 矩阵A乘以B (15分) 给定两个矩阵AAA和BBB,要求你计算它们的乘积矩阵ABABAB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若AAA有RaR_aR​a​​行、CaC_aC​a​​列,BBB有RbR_bR​b​​行、CbC_bC​b​​列,则只有CaC_aC​a​​与RbR_b 阅读全文
posted @ 2020-10-21 16:26 罪梦者 阅读(814) 评论(0) 推荐(0)
摘要: 7-53 删除字符串中的子串 (20分) 输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。 输入格式: 输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。 输出格式: 在一行中输出删除字符串S1中出现的所有子串S2后 阅读全文
posted @ 2020-10-21 16:24 罪梦者 阅读(220) 评论(0) 推荐(0)
摘要: 7-52 找最小的字符串 (15分) 本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。 输入格式: 输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。 输出格式: 在一行中用以下格式输出最小的字符串: Min is: 最小字符串 阅读全文
posted @ 2020-10-21 16:21 罪梦者 阅读(4158) 评论(0) 推荐(0)
摘要: 7-51 字符转换 (15分) 本题要求提取一个字符串中的所有数字字符('0'……'9'),将其转换为一个整数输出。 输入格式: 输入在一行中给出一个不超过80个字符且以回车结束的字符串。 输出格式: 在一行中输出转换后的整数。题目保证输出不超过长整型范围。 输入样例: free82jeep5 输出 阅读全文
posted @ 2020-10-21 16:20 罪梦者 阅读(1350) 评论(0) 推荐(0)
摘要: 7-50 打印杨辉三角 (20分) 本题要求按照规定格式打印前N行杨辉三角。 输入格式: 输入在一行中给出N(1≤N≤10)。 输出格式: 以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。 输入样例: 6 输出样例: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 阅读全文
posted @ 2020-10-21 16:19 罪梦者 阅读(1806) 评论(0) 推荐(0)
摘要: 7-49 求矩阵的局部极大值 (15分) 给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。 输入格式: 输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最 阅读全文
posted @ 2020-10-21 16:17 罪梦者 阅读(1368) 评论(0) 推荐(0)
摘要: 7-48 字符串转换成十进制整数 (15分) 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。 输入格式: 输入在一行中给出一个以#结束的非空字 阅读全文
posted @ 2020-10-21 16:16 罪梦者 阅读(735) 评论(0) 推荐(0)
摘要: 7-47 方阵循环右移 (20分) 本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。 输入格式: 输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方 阅读全文
posted @ 2020-10-21 16:15 罪梦者 阅读(375) 评论(0) 推荐(0)
摘要: 7-46 找出不是两个数组共有的元素 (20分) 给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末 阅读全文
posted @ 2020-10-21 16:14 罪梦者 阅读(641) 评论(0) 推荐(0)
摘要: 7-45 素数对猜想 (20分) 让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n>1有d​n​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<10​5​​),请计算不超过N的满足猜想的 阅读全文
posted @ 2020-10-21 16:04 罪梦者 阅读(139) 评论(0) 推荐(0)
摘要: 7-44 出生年 (15分) 以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。 输入格式: 输入在一行中给出出生 阅读全文
posted @ 2020-10-21 16:02 罪梦者 阅读(361) 评论(0) 推荐(0)
摘要: 7-43 组织星期信息 (10分) 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 定义一个指针数组将下面的星期信息组织起来,输入一个字符串,在表中查找,若存在,输出该字符串在表中的序号,否则输出-1。 Sunday Monday Tuesday Wednesda 阅读全文
posted @ 2020-10-21 16:01 罪梦者 阅读(1944) 评论(0) 推荐(0)
摘要: 7-42 圆形体体积计算器 (20分) 本题要求实现一个常用圆形体体积的计算器。计算公式如下: 球体体积 V=​3​​4​​πr​3​​,其中r是球体半径。 圆柱体体积 V=πr​2​​h,其中r是底圆半径,h是高。 圆锥体体积 V=​3​​1​​πr​2​​h,其中r是底圆半径,h是高。 输入格式 阅读全文
posted @ 2020-10-21 16:00 罪梦者 阅读(1161) 评论(0) 推荐(0)
摘要: 7-41 输出数组元素 (15分) 本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。 输入格式: 输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。 输出格式: 顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字 阅读全文
posted @ 2020-10-21 15:59 罪梦者 阅读(1805) 评论(0) 推荐(0)
摘要: 7-40 求幂之和 (15分) 本题要求编写程序,计算sum=2​1​​+2​2​​+2​3​​+⋯+2​n​​。可以调用pow函数求幂。 输入格式: 输入在一行中给出正整数n(≤10)。 输出格式: 按照格式“result = 计算结果”输出。 输入样例: 5 输出样例: result = 62代 阅读全文
posted @ 2020-10-21 15:56 罪梦者 阅读(721) 评论(0) 推荐(0)
摘要: 7-39 天梯赛座位分配 (20分) 天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情。为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位参赛选手。令每校选手排成一列纵队,第 i+1 队的选手排在第 阅读全文
posted @ 2020-10-21 15:54 罪梦者 阅读(475) 评论(0) 推荐(0)
摘要: 7-38 个位数统计 (15分) 给定一个 k 位整数 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 阅读全文
posted @ 2020-10-21 15:44 罪梦者 阅读(418) 评论(0) 推荐(0)
摘要: 7-37 A-B (20分) 本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。 输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过10​4​​,并且保证每个字符串都是由可见的ASCII码和空白 阅读全文
posted @ 2020-10-21 15:42 罪梦者 阅读(353) 评论(0) 推荐(0)
摘要: 7-36 Left-pad (20分) 根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的React/Babel干瘫痪了。这是个什么样的模块?就是在字符串 阅读全文
posted @ 2020-10-21 15:39 罪梦者 阅读(336) 评论(0) 推荐(0)