本文共 1910 字,大约阅读时间需要 6 分钟。
题目:
牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。
例如: 一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3 一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3 一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2 为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。 如样例所示: 如果牛牛把6个队员划分到两个队伍 如果方案为: team1:{1,2,5}, team2:{5,5,8}, 这时候水平值总和为7. 而如果方案为: team1:{2,5,8}, team2:{1,5,5}, 这时候水平值总和为10. 没有比总和为10更大的方案,所以输出10.
题解:
队伍的水平值等于该队伍队员中第二高水平值,为了所有队伍的水平值总和最大的解法,也就是说每个队伍的第二个值是尽可能大的值。所以实际值把最大值放到最右边,最小是放到最左边。import java.util.*;public class Main{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int[] array=new int[3*n]; long sum=0; for(int i=0;i<3*n;i++){ array[i]=scan.nextInt(); } Arrays.sort(array); for(int i=0;i
题目:
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
题解:
1.遍历str2这个字符串,把对应的字符放到hash[]中 2.遍历str1这个字符串,找到==0的import java.util.*;public class Main{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); String str1=scan.nextLine(); String str2=scan.nextLine(); HashMapmap=new HashMap<>(); //遍历str2这个字符串 for(int i=0;i
题目:
读入一个字符串str,输出字符串str中的连续最长的数字串import java.util.*;public class Main{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); String str=scan.nextLine(); String cur=""; String ret=""; for(int i=0;i='0'&&ch<='9'){ cur=cur+ch+""; }else{ if(cur.length()>ret.length()){ ret=cur; }else{ cur=""; } } } if(i==str.length()&&cur.length()>ret.length()){ ret=cur; } System.out.println(ret); }}
转载地址:http://qsstz.baihongyu.com/