【搜狐】根据成绩计 算出至少需要发多少奖金才能让所有的组满意
2017-05-28 13:24
281 查看
package com.wt; /** 搜狐笔试题 题目描述 小狐进行了一次黑客马拉松大赛,全公司一共分为了N个组,每组一个房间排成一排开始比赛, 比赛结束后没有公布成绩,但是每个组能够看到自己相邻的两个组里比自己成绩低的组的成绩, 比赛结束之后要发奖金,以1w为单位,每个组都至少会发1w的奖金,另外,如果一个组发现自 己的奖金没有高于比自己成绩低的组发的奖金,就会不满意,作为比赛的组织方,根据成绩计 算出至少需要发多少奖金才能让所有的组满意。 输入描述: 每组数据先输入N,然后N行输入N个正整数,每个数表示每个组的比赛成绩。 输出描述: 输出至少需要多少w的奖金 思路:新建两个数组,第一个数组用来存储成绩,第二个数组用来存储对应的奖金,第二个数组初始化为1 */ public class Bonus { public static void main(String[] args) { // int[] score = new int[]{20,32,12,32,45,11,21,31,41,33}; int[] score = new int[]{50,40,30,50,60,10}; int[] result = compare(score); for(int i = 0;i < result.length;i ++) { System.out.println(result[i]); } } //传入分数数组 public static int[] compare(int[] score) { int[] bonus = new int[score.length]; //每一队至少发1万奖金,初始化数组 for(int i = 0;i < score.length;i++) { bonus[i] = 1; } for (int i = 0;i < score.length;i ++) { if(i == 0) { if(score[0] > score[1]) { bonus[0] = bonus[1] + 1; } } else if(i == score.length-1) { if(score[score.length - 1] > score[score.length - 2]) { bonus[score.length - 1] = score[score.length - 2] + 1; } } else { //如果大于它左边的成绩 if(score[i] > score[i -1]) { //大于左边的成绩,看它的奖金是否也大于左边的 if(bonus[i] <= bonus[i -1]) { bonus[i] = bonus[i-1] + 1; } } //如果大于它右边的成绩 if(score[i] > score[i + 1]) { //大于它右边的成绩,看它的奖金是否也大于右边的 if(bonus[i] <= bonus[i + 1]) { //调整奖金 bonus[i] = bonus[i + 1] + 1; //调整奖金后,看看前面的奖金是否还满足要求 for(int j = i; j > 0;j --) { if(score[j - 1] > score[j]) { if(bonus[j - 1] >= bonus[j]) { bonus[j - 1] = bonus[j] + 1; } } } } } } } return bonus; } }
相关文章推荐
- 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。
- 需要多少卫生纸才能覆盖得克萨斯州?你在水中会比在糖浆中游得快吗?如果你要清洗西雅图的所有窗户,收费多少?
- 小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来 * 每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,从周一开始,小明需要多少天才能存够100元?
- hdu 3529 Bomberman - Just Search 重复覆盖+DLX 炸弹人游戏中,问最少需要放多少颗炸弹,才能够将所有的墙壁炸掉,其中,炸弹在同一时间引爆
- hdu 3498 whosyourdaddy 重复覆盖+DLX 每次攻击i和i的所有邻居,最少攻击多少人才能杀死所有敌人
- 网易面试题之 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
- 1000瓶药有1瓶有毒,需要多少只小白鼠才能试验找出
- 为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从
- c语言:输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n
- 【转】一个域名是用哪里的DNS来解析的,电脑怎么知道找哪一个DNS呢? 我注册域名的时候会在服务商那里配置DNS解析,一般需要24小时后才能访问,我想知道,解析后的这个数据是不是会同步到世界上所有的DNS服务器呢!如果不是,当我访问我的这个域名的时候,电脑怎么知道去找到我注册的这一家的DNS服务器呢,谁告诉他的呢?
- 有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡至少要多少只小白鼠才能在24小时
- 3、写一个程序,定义一个学生结构体,至少要含4个数据项,其中有一项用来保存学生成绩。用此结构体存储班级上的所有学生信息
- 【面试】小东最少需要拉多少票才能让她获胜(京东实习笔试题)
- 每门课由平时成绩和考试成绩组成,满分为r。现在他知道每门课的平时成绩为ai ,若想让这门课的考试成绩多拿一分的话,小v要花bi 的时间复习,不复习的话当然就是0分。同时我们显然可以发现复习得再多也不会拿到超过满分的分数。为了拿到奖学金,小v至少要花多少时间复习。
- 老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
- 雅虎仍然需要至少4到5年才能赶上Google
- 有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?
- 至少需要加多小位的校验位才能构成海明码。 若信息为 32 位的二进制编码
- 【华为上机试题C++】老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
- 网易面试题之 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。