我有一个大小为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];
}
}
}
答案 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);
}
如果我没有做旗帜的事情,它会打印两次。可能还有其他一些有效的方法可以做到这一点。