首页 > 解决方案 > 通过从头开始观察元素,数组 b 中的字符改变了多少次

问题描述

public static  int changeSign(int [] b) {

    int counter=0 ;

    for(int i=0;i<b.length;i++) {

        if(b[i]>0 && b[i+1]<0) {

            counter++;

        }
        if(b[i]<0 && b[i+1]>0) {

            counter++;

        }

    }

    return counter;
    }

例如,u 10, -4, 12, 56, -8, -9字符改变3时间

标签: javaarrayscounting

解决方案


您遇到的问题是因为ArrayIndexOutOfBoundsException您何时尝试访问哪个是,这是不可能的,因为索引从 0 开始,因此您需要先停止一步。ib.length-1b[i+1]b[b.length]


同样要获得一个条件,您可以乘以并查看结果的符号:

public static int changeSign(int[] b) {
    int counter = 0;
    for (int i = 0; i < b.length - 1; i++) {
        if (b[i] * b[i + 1] < 0) {
            counter++;
        }
    }
    return counter;
}

推荐阅读