java - 通过从头开始观察元素,数组 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
时间
解决方案
您遇到的问题是因为ArrayIndexOutOfBoundsException
您何时尝试访问哪个是,这是不可能的,因为索引从 0 开始,因此您需要先停止一步。i
b.length-1
b[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;
}
推荐阅读
- sql - SQL 获取两次之间的值
- automation - 如何在 Automation Anywhere Enterprise Client 中停止正在运行的任务?
- solr - 如何在 solr 中搜索时忽略点和其他字符
- mysql - sql获取中间记录
- react-native - 使用 URI 反应原生图像未在设备上显示
- excel - 运行时错误 438 消息确定 LastRow
- bash - cURL 从文件中读取 URL - 进程休眠
- django - 在 django 中验证上传文件
- c# - .Net jQuery WYSIWYG 隐藏在 AJAX 回发上
- php - 未定义的属性:App\User::$login using Jenssegers\Mongodb