Topcoder_4
来源:互联网 发布:淘宝减肥药事件 编辑:程序博客网 时间:2024/05/20 06:06
【问题描述】
当准备一组题目的时候,出题者必须同时考虑每个问题的难度和长度。一组分配得比较好的问题一般是一道简单题、一道中等题和一道难题,并且不能花费太长或太短的时间完成题目。
现在给定三个int数组。第一个数组包含简单题目所需要的时间,第二个是中等题的,第三个是难题的。返回满足如下要求的组合个数。必须分别包含一道简单、中等、难题,并且花费的总时间在60至75之间(包括)。
定义:
类 Chooser
方法 public int numSets(int[] easy, int[] middle, int[] hard)
约束:
1、每个数组包括0至10个元素(包括)
2、容易题数组的时间范围是5至15(包括)
3、中等题数组的时间范围是15至45(包括)
4、难题数组的时间范围是30至55(包括)
测试用例:
1、{5,10,15} {15,25} {45}
Return 4
2、{5,5,5} {15,15,15} {45,45,35}
Return 18
2、{} {15,25} {30,35,40}
Return 0
当准备一组题目的时候,出题者必须同时考虑每个问题的难度和长度。一组分配得比较好的问题一般是一道简单题、一道中等题和一道难题,并且不能花费太长或太短的时间完成题目。
现在给定三个int数组。第一个数组包含简单题目所需要的时间,第二个是中等题的,第三个是难题的。返回满足如下要求的组合个数。必须分别包含一道简单、中等、难题,并且花费的总时间在60至75之间(包括)。
定义:
类 Chooser
方法 public int numSets(int[] easy, int[] middle, int[] hard)
约束:
1、每个数组包括0至10个元素(包括)
2、容易题数组的时间范围是5至15(包括)
3、中等题数组的时间范围是15至45(包括)
4、难题数组的时间范围是30至55(包括)
测试用例:
1、{5,10,15} {15,25} {45}
Return 4
2、{5,5,5} {15,15,15} {45,45,35}
Return 18
2、{} {15,25} {30,35,40}
Return 0
- import java.util.Arrays;
- public class Chooser {
- public int numSets(int[] easy, int[] middle, int[] hard) {
- int count = 0;
- if (easy.length == 0 || middle.length == 0 || hard.length == 0)
- return 0;
- Arrays.sort(easy);
- Arrays.sort(middle);
- Arrays.sort(hard);
- if (easy[easy.length - 1] + middle[middle.length - 1] + hard[hard.length - 1] <= 75
- && easy[easy.length - 1] + middle[middle.length - 1] + hard[hard.length - 1] >= 60
- && easy[0] + middle[0] + hard[0] >= 60)
- return easy.length * middle.length * hard.length;
- int flag=0;
- for (int i = 0; i < easy.length; i++) {
- for (int k = 0; k < middle.length; k++) {
- flag=0;
- for (int m = 0; m < hard.length; m++) {
- if (easy[i] + middle[k] + hard[m] <= 75 && easy[i] + middle[k] + hard[m] >= 60){
- count++;
- }else if(easy[i] + middle[k] + hard[m] >75){
- if(m==0)
- flag =1;
- break;
- }
- }
- if(flag==1)
- break;
- }
- }
- return count;
- }
- }