如何检查下一个号码并将其与前一个号码进行比较

时间:2016-02-07 15:26:09

标签: java arrays

我有一个大小为14的数字数组,其中填充-1,其中空白,其余数字如下例[2,3,4,7,8,-1,-1 ... ]

我如何比较这些数字,使它们相隔1,并从该比较中取出第一个和最后一个数字。所以在这里我要比较| 2-3 | = 1,| 3-4 | = 1,| 4-7 | = 3,我将2作为第一个数字,4作为最后一个数字,然后比较另一半,所以| 7-8 | = 1然后7是第一个数字,8是最后一个数字。

            int diff = 0;
            int firstNum = 0;
            int lastNum = 0;
            for (int j=0; j < temp.length; j++){
                if (temp[j] != -1){

                    diff = Math.abs(temp[j] - temp[j+1]);

                    if (diff <= 1){
                        // first and last number
                        firstNum = temp[j];
                        lastNum = temp[j+1];
                    }
                    else {
                        firstNum = temp[j];
                        lastNum = temp[j+1];
                    }

                }
            }

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

unsigned long int

答案 1 :(得分:0)

试试这个..,

        int diff = 0;
        bool flag = false;
        int firstNum = 0;
        int lastNum = 0;
        for (int j=0; j < temp.length-1; j++){
            if (temp[j] != -1 && temp[j+1] != -1){
                diff = Math.abs(temp[j] - temp[j+1]);

                if (diff <= 1){
                    if(firstNum == 0)
                       firstNum = temp[j];
                    lastNum = temp[j+1];
                    flag = false;
                }
                else {
                    System.out.println(firstNum + ", " + lastNum);
                    firstNum = 0;
                    flag = true;
                }

            }
              if (!flag)
              System.out.println(firstNum + ", " + lastNum);
        }

如果我没有做旗帜的事情,它会打印两次。可能还有其他一些有效的方法可以做到这一点。