首页 > 试题广场 >

求最少需要的奖品总数,以满足上述规则?

[单选题]
有N个员工排队排成一排,每个员工对应了一个级别K,按照以下规则给员工发奖品。 1.每个员工都至少发一个奖品 2.相邻的两个员工如果级别不同,那么级别高的一定要得到比级别低的员工更多的奖品。 K为整数,1表示级别最低,然后是2,3,以此类推。 员工的级别排列如下:1 2 3 4 4 1 2,求最少需要的奖品总数,以满足上述规则?
  • 15
  • 14
  • 13
  • 12
同样是4级,为啥后面的就是2个,而不是4个。员工心理会平衡吗
发表于 2017-08-20 20:22:33 回复(9)
员工:1 2 3 4 4 1 2 
奖品:1 2 3 4 2 1 2 = 15
编辑于 2015-10-17 12:09:28 回复(0)
有点搞笑,为啥同样是四级,凭什么给人家后面一个少??
发表于 2018-08-24 10:18:37 回复(1)
有条件2知,第一个发一个,第二个至少2个,第三个至少3个,第四个至少4,因为相邻级别增加,第五个与第四个相同比第六个级别高,
 所以第五个至少2 个,第六个1个,第七个至少2个。1+2+3+4+2+1+2=15
发表于 2015-10-16 20:12:00 回复(0)
public class Solution {
    public int candy(int[] ratings) {
        int[] lc = new int[ratings.length];
        int[] rc = new int[ratings.length];
        int res = 0;
        lc[0]=1;
        rc[ratings.length-1] = 1;
        for(int i=1; i<ratings.length; i++) {
            if(ratings[i]>ratings[i-1]) {
                lc[i]=lc[i-1]+1;
            } else {
                lc[i] = 1;
            }
        }
        
        for(int j=ratings.length-2; j>=0; j--) {
            if(ratings[j]>ratings[j+1]) {
                rc[j] = rc[j+1]+1;
            } else {
                rc[j] = 1;
            }
        }
        
        for(int i=0; i<ratings.length; i++) {
            res += lc[i]>rc[i]?lc[i]:rc[i];
        }
        return res;
    }
}
发表于 2015-10-25 08:09:10 回复(1)
前面的1234没说的,只能分配1234个合计10个,后面的412以1为中心,1分1,2分2,需要注意的只是4也只分2就行。因此实际合计15个
发表于 2016-07-21 19:39:56 回复(0)
这题主要是看清楚,题目中已经给出了排列也就是站位1 2 3 4 4 1 2 ,要使奖品总数尽可能的少
首先第一个肯定一个奖品,然后第二个级别比第一个高,那么给2个奖品,同理第三个人给3个,第四个人给4个。
接着看最后两个人给1个和两个是没有疑问的,就是倒数第三个那个人,只需比相邻的级别1高就可以,所以给两个奖品
发表于 2022-05-25 10:39:13 回复(0)
顺序:1 4 4 1 3 2 2 奖品:1 2 2 1 2 1 1 只用10个呀。。我哪里理解错了吗
发表于 2020-08-29 17:21:27 回复(1)
同级的排在一起时,奖品数量没有要求
发表于 2017-03-28 21:13:03 回复(0)
真就资本家呗
发表于 2023-06-28 11:52:11 回复(0)
①至少人手一个:7个
②相邻的,级别高的多一个:1 2 3 1 1 =8个
至少15个
发表于 2022-11-15 21:14:05 回复(0)
虽然算对了,但是同样是4级,凭什么少给别人🙃
发表于 2022-09-17 12:18:01 回复(0)
排列:1 1 2 2 3 4 4 
奖品:1 1 2 2 3 4 1   =14
为啥不行?
发表于 2022-05-16 15:54:33 回复(0)
为什么不是 
2 4 1 4 1 3 2
1 2 1 2 1 2 1
发表于 2020-09-02 21:46:01 回复(0)
人家也只是说相邻级别高的一定比级别低的获得的多,没说同级就不能获得少。
发表于 2018-11-09 10:32:50 回复(0)