java - 我是否在查找数组中最小值的索引时引用或实例错误?
问题描述
我的数组是:
int a = new int[] {20,20,30,40,6,70,80}
我查找最小值的代码是正确的,但是当我尝试输入时
idx=i
或者
idx= i+1
并返回idx
,我的输出为 0。
int minval=0;
int idx=0;
if(a==null || a.length==0) {
return null;
}
else if(a.length!=0) {
for(int i=0; i<a.length-1; i++) {
if(a[i]<a[i+1]) {
a[i+1]=a[i];
minval=a[i];
}
else
minval= a[i+1];
}
return minval;
}
return null;
}
解决方案
您应该将每个元素与当前最小值而不是相邻值进行比较。
int minIdx = 0;
for(int i = 1; i < a.length; i++) {
if(a[i] < a[minIdx]) minIdx = i;
}
return minIdx; //minIdx is index of smallest value; a[minIdx] is the smallest value
推荐阅读
- integration-testing - @Transactional 在 @QuarkusTest 中不起作用
- selenium-ide - Selenium IDE:如果变量包含一些文本
- hadoop - 使用 NiFi 附加到 HDFS 中现有的 avro 文件
- ruby-on-rails - 发送带有附件名称操作 Mailer Ruby on Rails 的电子邮件
- css - 带进度条的 Bootstrap 4 评分
- url - 选择 url 时清除会话存储并按 enter
- c++ - 如何将自定义切换按钮添加到自定义项目委托?
- android - Gradle Kotlin DSL 找不到 java.io 包
- javascript - 正则表达式 - 从字符串获取整个文本到双换行符
- javascript - TypeError: (void 0) is not a function when close modal