首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

数据的起码分组数(数组)求更正

2012-12-17 
数据的最少分组数(数组)求更正!题目描述有一组数字共有N个数,,要求对这组数字进行分组,规则:找出这组数字

数据的最少分组数(数组)求更正!
题目描述
有一组数字共有N个数,,要求对这组数字进行分组,规则:找出这组数字中连续的数字,作为一组,如果是单独的数字就单独作为单独的一组.最终将这组数据分成多个组,但是要求分组后,每一组数据的和不能超过一个给定的最大值M

要求写出通用算法。 
举例说明:如有一组数据共有9个数值1,2,3,13,9,10,11,12,15这组数字,要求进行分组,每组的和不超过16,则共可以分成4组(第一组:1,2,3为连续的数字.第二组:13为一个独立的数字,第三组:9,第四组10,第五组11为连续的数字.第六组12为一个独立的数字,第七组为15),所以答案为最少可以分为7组





输入
输入2行,第一行含有2个数字 N M

第二行为N 个数,每个数之间用一个空格隔开


输出
输出可以分出的最少组数


样例输入
9 16
1 2 3 13 9 10 11 12 15
样例输出
7
下面是我的代码:求更正

public class 一维数组中级J {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner rd=new Scanner(System.in);
int N=rd.nextInt();
int M=rd.nextInt();
int arr[]=new int[N];
for(int i=0;i<N;i++)
{
arr[i]=rd.nextInt();
}
int sum=0;
for(int i=0;i<arr.length;i++)
{
if(arr[i]<10)
{
if(arr[i+1]-arr[i]==1)
{
if(arr[i+1]-arr[i]!=1)
{
sum+=1;
}
}

}

else if(arr[i]%11==0)
{
sum+=1;
}
else{
sum+=1;
}System.out.print(sum);
}


}
}

[最优解释]

你觉得

if(arr[i+1]-arr[i]==1)                {                    if(arr[i+1]-arr[i]!=1)                    {                    sum+=1;                    }                }

第二个if能进么?

 else if(arr[i]%11==0)            {                sum+=1;            }            else{                sum+=1;

else if(arr[i]%11==0)            {                sum+=1;            }
这个是不是多余的?

热点排行