【问题标题】:Finding total number of combinations in an array?查找数组中的组合总数?
【发布时间】:2015-11-24 23:04:20
【问题描述】:

我有三个排序的数字。我只能更改最后一个或第一个数字以获取其他两个之间的数字。我最多可以更改多少?

例如:1,2,5 Ist 变化将是 2,3,5 这里 1 改为 2 到 5 之间的数字 第二次更改将是 3,4,5 所以输出是2。 谁能告诉我比下面更好的实现?

void printCount() {
    int a[] = {0,0,0};
    Scanner in=new Scanner(System.in);
    System.out.println("Enter the input");
    int count1=in.nextInt();
    for (int j=0;j<count1;j++){
    for(int i=0;i<3;i++){
        a[i]=in.nextInt();  
    }
    int count=0;    
    while(true){
        if(a[2]==(a[1]+1) && a[1] ==(a[0]+1)){
            break;
        }
        if((a[1]-a[0]) >a[2]-a[1]){
            a[2]=a[0]+1;
        }
        else{
            a[0]=a[1]+1;
        }
        count++;
        Arrays.sort(a);
    }   
    System.out.println(count);
    }
}

【问题讨论】:

标签: java arrays data-structures


【解决方案1】:

一旦你有了数组,为什么不做这样的事情。我可能遗漏了什么……

int firstDelete = Math.abs(a[2]-a[1])-1;
int thirdDelete = Math.abs(a[0]-a[1])-1;
System.out.println(Math.max(firstDelete, thirdDelete));  //Max count

【讨论】:

    猜你喜欢
    • 2016-10-09
    • 2018-02-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多