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次數(shù)
1 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
你遇到的問(wèn)題是ArrayIndexOutOfBoundsException因?yàn)楫?dāng)你嘗試訪問(wèn)which isi時(shí),這是不可能的,因?yàn)樗饕龔?開始,所以你需要在之前停止一步。b.length-1b[i+1]b[b.length]
另外,為了只得到一個(gè)條件,您可以相乘并查看結(jié)果的符號(hào):
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;
}
添加回答
舉報(bào)
0/150
提交
取消