排序
文章平均质量分 50
深街酒徒*
专业气氛组成员
展开
-
学生课程列表 Java题解 (map,set)【PAT甲级1039】
将每个学生的String与他对应的的所有课程存入map中,姓名对应key,所有课程对应value;所有的课程用TreeSet存储,实现自动升序,最后查找map输出。最后一个测试点内存超限了。原创 2022-04-18 09:49:24 · 251 阅读 · 0 评论 -
1499. 数字图书馆 Java题解 (map,set)【PAT甲级1022】
map + set:将每本书的每条信息分别与id存入map中,map的value中存储着满足该信息的所有id的集合。查找时直接在各信息的map中查找并加入set,代码冗余大,较省时。类+set:将每本书的所有信息都存入类中,查找信息时,遍历所有的书,从中找符合条件的id加入set中,代码冗余小,稍耗时。存id时,直接放入TreeSet中,自动为字符串按升序存放。原创 2022-04-15 13:21:46 · 99 阅读 · 0 评论 -
1484. 最佳排名 Java题解 (二分,map,排序)【PAT甲级1012】
数据存储:对学生信息的存储:用map。其中key存储学生的姓名,value用list存放该学生的四课成绩。对每科成绩的存储,用二维数组,二维数组的每行存储每科的所有成绩。查找方式:当对每课成绩都排序后,二分查找每个学生的每科成绩在该科成绩数组中的位置。找到名次后,取最小名次并作记录。原创 2022-04-15 10:41:38 · 655 阅读 · 0 评论 -
788. 逆序对的数量 Java题解 (归并排序)
通过分治思想,当归并排序到某一层时,假定左边序列[4, 6, 7],右边序列为[1, 5, 9]. 归并的步骤是:当左序列第一个值大于右边第一个值时,将右边第一个值加到辅助数组,此时左边序列的值均小于右边第一个数,所以将左边序列此时的个数作累加。左序列第一个值小于等于右边第一个值时,无需处理,因为此时为正序,非逆序。原创 2022-03-28 00:29:27 · 895 阅读 · 0 评论 -
787. 归并排序 Java题解
①:以数组索引的中间值确定分界点,将一个数组划分为两个数组。②:将分好的两个数组继续以各自的中间值划分为四个数组,递归划分直到子数组只有一个元素为止。③双路归并,合二为一。原创 2022-03-27 00:19:41 · 227 阅读 · 0 评论 -
试题 算法训练 奖学金 java 题解 621
问题描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到 低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯 一确定的。 任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。注意,在前5名同学中,每 个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,原创 2021-11-22 12:50:43 · 285 阅读 · 0 评论 -
试题 算法训练 字串统计 java 题解
问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。输入格式 第一行一个数字L。 第二行是字符串S。 L大于0,且不超过S的长度。输出格式一行,题目要求的字符串。输入样例1:4bbaabbaaaaa输出样例1:bbaa输入样例2:2bbaabbaaaaa输出样例2:aa数据规模和约定n<=60S中所有字符都是小写英原创 2021-10-30 23:54:39 · 215 阅读 · 0 评论 -
成绩排序 290 java 题解
问题描述 给出n个学生的成绩,将这些学生按成绩排序, 排序规则,优先考虑数学成绩,高的在前;数学相同,英语高的在前;数学英语都相同,语文高的在前;三门都相同,学号小的在前输入格式 第一行一个正整数n,表示学生人数 接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩输出格式 输出n行,每行表示一个学生的数学成绩、英语成绩、语文成绩、学号 按排序后的顺序输出样例输入21 2 32 3 4样例输出2 3 4 21 2原创 2021-10-11 23:31:54 · 153 阅读 · 0 评论 -
清点代码库 (25 分) java 题解 L2-3
上图转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出。各位大佬有啥想法,我当时就懵了,然后就挂了。。。”这里我们把问题简化一下:首先假设两个功能模块如果接受同样的输入,总是给出同样的输出,则它们就是功能重复的;其次我们把每个模块的输出都简化为一个整数(在 int 范围内)。于是我们可以设计一系列输入,检查所有功能模块的对应输出,从而查出功能重复的代码。你的任务就是设计并实现这个简化问题的解决方案。...原创 2021-10-06 20:18:52 · 405 阅读 · 1 评论 -
L2-034 口罩发放 (25 分) java 题解
为了抗击来势汹汹的 COVID19 新型冠状病毒,全国各地均启动了各项措施控制疫情发展,其中一个重要的环节是口罩的发放。某市出于给市民发放口罩的需要,推出了一款小程序让市民填写信息,方便工作的开展。小程序收集了各种信息,包括市民的姓名、身份证、身体情况、提交时间等,但因为数据量太大,需要根据一定规则进行筛选和处理,请你编写程序,按照给定规则输出口罩的寄送名单。输入格式:输入第一行是两个正整数D和P(1≤D,P≤30),表示有D天的数据,市民两次获得口罩的时间至少需要间隔P天。接...原创 2021-10-08 19:28:05 · 476 阅读 · 0 评论