zoukankan      html  css  js  c++  java
  • 【面试】小东最少需要拉多少票才能让她获胜(京东实习笔试题)

    一、前言

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

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

      如有如下输入:  

      2

      1 4

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

      输出如下:

      2

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

      再如输入:

      4

       7 6 6 6

      输出如下:

      0

    二、源程序

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

    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);
    }
    }

    三、总结

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

      

      

  • 相关阅读:
    【转】MySQL导入数据乱码的分析与解决
    查看MySQL的warning
    修改MySQL字符集
    【转】PHP乱码问题,UTF8(乱码)
    马哥Linux——第一周作业
    马哥Linux——第二周作业
    .Net内部运行过程
    Html那些事
    面向对象图解、类型转换图解,写给.Net新手
    javascript对于DOM加强
  • 原文地址:https://www.cnblogs.com/leesf456/p/5384566.html
Copyright © 2011-2022 走看看