【面试】小东最少须要拉多少票才能让她获胜(京东实习笔试题)

1、前言java

  京东的一道笔试题,大意以下。code

  小东与其余人玩游戏,每一个人都有候选票,投票票数最多的人获胜,在投票以前能够预测每一个人有多少票,请问小东最少须要从别人那里拉多少票才能保证她获胜,拉完票以后其余人的票数可能为0。blog

  若有以下输入:  排序

  2游戏

  1 4class

  第一行表示总共有两个候选人,而且小东的预测票数为1,另一个候选人票数为4。import

  输出以下:date

  2程序

  表示小东须要拉两票就保证她获胜。im

  再如输入:

  4

   7 6 6 6

  输出以下:

  0

2、源程序

  其实这道题目不算太难,关键是要找到正确思路,源代码以下 

import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int[] candidate = new int[num];
for (int i = 0; i < num; i++) {
candidate[i] = scan.nextInt();
}
scan.close();

// 小东当前的选票
int vote = candidate[0];

// 其余人的选票
int[] others = new int[candidate.length - 1];
for (int i = 0; i < candidate.length - 1; i++) {
others[i] = candidate[i + 1];
}

// 对其余人的选票进行排序
Arrays.sort(others);
int count = 0;
while (vote <= others[others.length - 1]) { // 小于最大选票
count++; // 增长须要的拉票数
vote++; // 增长小东当前的选票
others[others.length - 1]--; // 减小最大选票
Arrays.sort(others); // 再次排序
}

System.out.println(count);
}
}

3、总结

  首先须要好好分析题目,而后找好思路,这很很重要,谢谢各位园友观看~

相关文章
相关标签/搜索