1

例如,我如何从数组中检查5<10>5<10

代码:

int[] arr = {5,10,5,10,5,10,5};

for(int i = 0; i < arr.length; i++) {
    for(int j = 1; j < arr.length - i; j++) {
        if(arr[j-1] < arr[j] && arr[j] > arr[j+1]) {
            System.out.println("ok!");
        }
    }
}

现在我有这个,但它是错误的。

4

2 回答 2

3

你只有一个一维数组,所以你应该能够用一个循环来做到这一点。你的内循环看起来很接近。尝试这个:

int[] arr = {5,10,5,10,5,10,5};

for(int j = 1; j < arr.length-1; j++){
    if(arr[j-1] < arr[j] && arr[j] > arr[j+1]){
        System.out.println("ok!");
    }
}

这从第二个元素开始,到倒数第二个元素结束,并检查每一侧的元素是否符合您定义的条件。

于 2013-06-03T22:42:01.243 回答
0

这是假设您在数组中至少有 2 个成员(您可以在之前检查):

boolean isOk = true;

for(int i=1;i<arr.length;i+=2){
       isOk = isOk && (arr[i] > arr[i-1]) && (arr.length == i+1 || (arr[i] > arr[i+1]));
    } 
}

if(isOk) {
    System.out.println("ok!");
}
于 2013-06-03T22:45:44.900 回答