选举游戏
来源:互联网 发布:bestgore知乎 编辑:程序博客网 时间:2024/06/10 01:22
题目:
小东和其他小朋友正在玩一个关于选举的游戏。选举是通过投票的方式进行的,得票最多的人将获胜。小东是编号为1的候选者,此外还有其他的候选者参加选举。根据初步的调查情况,所有准备投票的小朋友都有一定的投票倾向性,小东如果要获得胜利,必须争取部分准备为其他候选人投票的小朋友。由于小东的资源较为有限,她希望用最小的代价赢得胜利,请你帮忙计算她最少需要争取的选票数。
输入
输入有若干组,每组包含两行,第一行为一个正整数n(2<=n<=100),表示候选者的数量,第二行为每个候选人预期得到的选票数,以空格分开,每人的预期得票数在1到1000之间(包含1和1000)。
经过小东的争取后,可能出现候选人得票数为0或超过1000的情况。
输出
对每组测试数据,单独输出一行,内容为小东最少需要争取的选票数。
考察:递归的实现
我的答案:
import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.Scanner;public class Main {public static void main(String[] args){Scanner in = new Scanner(System.in);List<Integer> list = new ArrayList<>();while(in.hasNext()){int n = in.nextInt();//候选人数目int m = in.nextInt();//小明预期选票for(int i=0;i<n-1;i++){list.add(in.nextInt()); //其他候选人预期选票}int result = fun(list,m);System.out.println(String.valueOf(result));}}public static int fun(List<Integer> list,int num){int max = 0;int temp = 0;for(int i=0;i<list.size();i++){if(num > list.get(i)){list.remove(i--);}} //删除比小明小的人if(list.size()!=0){max = Collections.max(list);for(int i=0;i<list.size();i++){if(list.get(i) == max){temp = i;}} //找到最大数的位置list.set(temp, list.get(temp)-1);num++;return 1 + fun(list,num);}else{return 0;}}}
阅读全文
0 0
- 选举游戏
- 选举游戏
- 京东笔试:选举游戏
- 京东2016实习生招聘-选举游戏
- 选举
- 选举
- 选举
- 选举游戏(京东2016实习生真题)
- 选举游戏(京东2016实习生真题)
- 京东2016实习题目-选举游戏-小东和其他小朋友正在玩一个关于选举的游戏。选举是通过投票的方式进行的,得票最多的人将获胜。
- 京东2016实习生招聘 C++开发工程师 在线考试(编程题第二题:选举游戏)
- 提前选举
- 选举地图
- 选举算法
- 选举计数
- 总统选举
- Master选举
- 投票选举
- Java之RandomAccessFile类存取数据
- 栈
- VALSE 2017 | 神经网络模型压缩优化方法
- Git合并两个仓库
- OCR表格识别—企业应用的技术新秀
- 选举游戏
- KafkaController 分区Rebalance平衡机制
- CSS选择器
- day01 java基础常识
- makefile
- Problem C: 字符构成的图形
- 欢迎使用CSDN-markdown编辑器
- 修改idea的jvm参数
- 基础篇:8)设计的深度-最小特征