在数组中,对于所有元素,如何确定数组中是否存在n-1或n + 1?

时间:2018-04-26 05:22:33

标签: java arrays

我已尝试使用以下代码

function loadJS(file) {
    // DOM: Create the script element
    var jsElm = document.createElement("script");
    // set the type attribute
    jsElm.type = "application/javascript";
    // make the script element load file
    jsElm.src = file;
    // finally insert the element to the body element in order to load the script
    document.body.appendChild(jsElm);
}

结果:0 结果应为1

static int isBean(int...a){
    int isbean=1;
    for (int i = 0; i < a.length; i++) {

        for (int j = 0; j <a.length; j++) {
            if(a[i]+1!=a[j]||a[i]-1!=a[j]){ 
            isbean=0;
            }



        } System.out.println(" ");
    }

    return isbean;
}


   public static void main(String[] args) {
    int[] arr= {2, 10, 9,3};
    System.out.println(isBean(arr));
}

我的代码在哪里做错了?

2 个答案:

答案 0 :(得分:0)

稍微修改一下代码:

static int isBean(int...a){
    int isbean=1;
    for (int i = 0; i < a.length; i++) {

    boolean isFound = false;
        for (int j = 0; j <a.length; j++) {
            if(a[i]+1==a[j]||a[i]-1==a[j]){ 
            isFound = true;
            break;
            }
        } 
        System.out.println(" ");
        if(!isFound){
                isbean= 0;
                break;
            }
    }

    return isbean;
}

这应该有用。

答案 1 :(得分:0)

试试这个,这个解决方案应该在O(nlogn + n)

中工作
 int isBean=0;
    int a[] ={2, 10, 9,3};

    Arrays.sort(a);   
    for(int i=0;i<a.length-1;i++)
    {
        if(a[i]==a[i+1]-1)
        {
            isBean=1;
        }

    }