笔试一共四道编程题,共100min:imp:。
鄙人全军覆没~:innocent:
下面是大佬的题解~
1. 素数的个数
给出一个包含n个正整数的数组a,把a[i]拆分为若干个和为a[i]的素数,求拆分后最多能有多少个素数。
1 | 第一行数据为n,表示数组长度,第二行为n个元素。 |
根据规律可得:nums[i]/2就是该元素可以分出的素数个数。发现自己真的想多了,原来是在找规律。
1 | import java.util.Scanner; |
2. 字典序最小的排列
没做,题目让我看蒙了:disappointed:。
给出一个长度为m的序列T,求一个长度为n且字典序最小的排列S,要求不改变原序列中元素的相对位置。
1 | 第一行输入两个正整数n和m |
合并数组 + 双指针。先通过HashSet取出缺失的元素,组成nums2数组。需要result数组的注意第一个元素,nums1和nums2的第一个元素,谁小,先存谁。
1 | import java.util.HashSet; |
3. 丢弃最少物品
好题好题!
给出n个物品,每个物品都有自己的价值,每个物品只有一件,这些物品需要分给两个人,要求分配完之后,两个人的物品价值相同。分配完成之后,会丢弃剩下的物品,求最少要丢弃多少物品。
1 | 输入 |
根据大佬的思路:dfs回溯 + 分与不分,实在是没想到dfs还有这种用法,之前只会用dfs计算组合,这次算是学到了。
1 | import java.util.Scanner; |
4. 运送货物
第四题看了一眼,emmm,是我惹不起的…