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

    三、总结

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

      

      

  • 相关阅读:
    python 调用dll 动态链接库 结构体参数及回调函数等示例
    逆向x64-small-trick
    Malloc碎碎念
    关于OF和CF
    月赛-Crackhash
    ARM64调试环境
    Apache Kafka(六)- High Throughput Producer
    Apache Kafka(五)- Safe Kafka Producer
    Apache Kafka(四)- 使用 Java 访问 Kafka
    Apache Kafka(三)- Kakfa CLI 使用
  • 原文地址:https://www.cnblogs.com/leesf456/p/5384566.html
Copyright © 2011-2022 走看看