java - 根据用户输入的高度JAVA获取对角线或水平线组合的总组合

标签 java for-loop

我遇到了一个问题,我需要接受用户输入,并返回任意 3 个高度的所有组合,当按照从最小到最大的顺序排列时,会产生对角线或水平线。例如,如果用户输入是 3 5 7 10 2 1 1 1,那么输出应该是

1 1 1
1 2 3
1 3 5
3 5 7

我有一些工作代码,但我的问题是得到的结果距离大于 1。到目前为止我当前的工作代码如下。

    Arrays.sort(intArray);
    int counter = 0;
    for(int x = 0; x < intArray.length - 2; x++){
        if(intArray[x] == intArray[x+1] && intArray[x] == intArray[x+2] && intArray[x] != 0){
            validArray[counter][0] = intArray[x];
            validArray[counter][1] = intArray[x+1];
            validArray[counter][2] = intArray[x+2];
            counter++;
        }
        if(intArray[x] < intArray[x+1]){
            dif = intArray[x+1] - intArray[x];
            if(dif == intArray[x+2] - intArray[x+1]){
                validArray[counter][0] = intArray[x];
                validArray[counter][1] = intArray[x+1];
                validArray[counter][2] = intArray[x+2];
                counter++;
            }
        }

    }
    for(int x = 0; x < validArray.length; x++){
        if(validArray[x][0] != 0){
            System.out.println(validArray[x][0] + " " + validArray[x][1] + " " + validArray[x][2]);
        }
    }

如果用户输入3 5 7 10 2 1 1 1 我明白

1 1 1
1 2 3
3 5 7

而不是 1 3 5。我明白为什么我的代码没有输出正确的输出,但我不确定如何对循环结构进行编码以获得所需的输出。非常感谢有关此事的任何帮助!

最佳答案

我建议您使用嵌套 for 循环评估所有可能的三元组,例如:

Arrays.sort(intArray);
final int len = intArray.length;
ArrayList<int[]> validComb = new ArrayList<int[]>();

for(int i = 0 ; i < len ; i++) {
    for(int j = i+1 ; j < len ; j++) {
        for(int k = j+1 ; k < len ; k++) {
            int[] comb = {intArray[i], intArray[j], intArray[k]};

            if(/*comb is valid*/ && /*comb is not a duplicate of another combination*/) {
                validComb.add(comb);
            }
        }
    }
}

关于java - 根据用户输入的高度JAVA获取对角线或水平线组合的总组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35761435/

相关文章:

java - spring 3子bean验证

java - 打印数学随机生成的数字的最大数字

python - 避免(或加速)Python 中的大循环?

c - for循环问题

java - 返回字符串数组代替字符串

java - RMI 服务器不会从其 HTTP 代码库服务器动态加载缺失的类

java - Mockito 单元测试 RestTemplate

apache-spark - 如何遍历pyspark中的每一行dataFrame

python - 在python中对文件中的整数求和

java - 避免@Secured 注解的重复值