2018趋势科技编程题
2017-09-19 22:26
483 查看
题目:输入两行数据,第一行(每一票所投的候选人Id),第二行(该票的权重)。候选人总权重高的赢,若权重数一样,则票数多的赢。求胜出者Id。
输入:
1 2 3 4 5 2 3
2 3 1 1 2 2 2
输出:
2
只想出了这种繁琐一点的做法。
输入:
1 2 3 4 5 2 3
2 3 1 1 2 2 2
输出:
2
只想出了这种繁琐一点的做法。
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main{ //有重复的数组转换成无重复的集合 public static List<Integer> f(int[] str){ List<Integer> list = new ArrayList<Integer>(); for (int i=0; i<str.length; i++) { if(!list.contains(str[i])) list.add(str[i]); } return list; } //最大值 public static int getMax(int[] arr) { int max = arr[0]; for (int x = 1; x < arr.length; x++) { if (arr[x] > max) max = arr[x]; } return max; } public static void main(String[] args){ Scanner in1 = new Scanner(System.in); while(in1.hasNextLine()){ String arr1[] =in1.nextLine().split("\\s+"); int[] num1 = new int[arr1.length]; for(int i = 0 ;i<arr1.length;i++) num1[i] = Integer.parseInt(arr1[i]); List<Integer> list1 = f(num1); String arr2[] =in1.nextLine().split("\\s+"); int[] num2 = new int[arr2.length]; for(int i = 0 ;i<arr2.length;i++) num2[i] = Integer.parseInt(arr2[i]); if(arr1.length!=arr2.length){ System.out.println("Input Error"); } int len = list1.size(); //票数vote,候选人ID是list1,权重quan int[] vote = new int[len]; int[] quan = new int[len]; for(int j = 0;j<list1.size();j++) for(int i = 0 ;i<arr1.length;i++){ if(num1[i]==list1.get(j)){ vote[j] +=1; quan[j] += num2[i]; } } int max = getMax(quan); int voteMax =getMax(vote); int num11 = 0; int num22 = 0; for(int j = 0;j<list1.size();j++){ if(quan[j]==max ) num11 +=1; if(vote[j]==voteMax ) num22 +=1;} for(int i = 0;i<list1.size();i++){ if(num11==1 && quan[i]== max ){ System.out.println(list1.get(i)); return; } if(num11>1 ){ if(num22 ==1 && vote[i]==voteMax) System.out.println(list1.get(i)); else System.out.println("No Winner"); return; } } System.out.println("No Winner"); } in1.close(); } }
相关文章推荐
- 深信服2018春季招聘-研发卷编程题 - 题解
- 滴滴2018秋招编程题
- 2018美团点评笔试(机器学习,数据挖掘方向)编程题题解
- 2018百度android方向校招编程题
- 网易2018校园招聘编程题真题集合(一)
- 烽火通信2018校招软件工程师编程题 - 题解
- 网易2018校园招聘编程题真题集合 (部分)
- 网易2018校园招聘编程题真题集合3字符串碎片
- 网易校招2018编程题
- 网易2018校招编程题集合1
- 阿里2018校招笔试编程题
- 美团内推2018编程题1——改考卷
- 2018美团点评内推笔试编程题2
- 京东2018秋招编程题
- 网易2018校招笔试编程题
- 2018科大讯飞在线笔试题(编程题部分)
- 网易2018校招内推编程题合集部分
- 网易2018春招笔试编程题——nk数对
- 网易2018校招编程题3
- 腾讯2018实习编程题第二题