java - 在这个数组中寻找最小的数字(想了解自己解决的逻辑;不想要答案)
问题描述
我有一个数组(简单数组):
int [] array = { 1, 2, 3, 4, 5 };
还有一个嵌套的 for 循环来查找最小的元素。
public static int smallest(int[] array){
int answer = 0;
for(int i = 0; i < array.length; i++){
for(int j = 0 + i; j < array.length; j++){
if(array[i] < array[j]){
answer = i ;
}
}
}
return answer;
}
在这种情况下,我的嵌套 for 循环发现第一个遍历满足我的条件,其中 [i] 小于所有 [j] 元素。但是,我的循环继续运行,这就是我对逻辑/工作流程感到困惑的地方。在提供的数组中找到所需结果后,如何安全退出?我的条件有问题吗?太复杂了?因为无缘无故地设置 answer = i 这么多次看起来很荒谬。感谢任何输入。
解决方案
由于您不想要完整的答案,因此这里有一些提示:
-
if(array[i] < array[j]){ answer = i ; }
如果您考虑这个测试,它会
answer
根据涉及数组中两个项目的测试结果进行修改,array[i]
并且array[j]
. 如果两个元素都不是最小的怎么办?测试不检查那个。您需要以某种方式参与
answer
测试,以便在遍历数组时跟踪“迄今为止最小的”。 查找列表中的最小数字不需要嵌套循环。如果你用手在纸上做,你可以一次性找出答案,每个数字只看一次。您的代码应该做同样的事情:一次循环,一次通过。
推荐阅读
- nginx - 如何将 nginx 位置添加回 302 重定向响应位置
- google-cloud-platform - 如何在没有第三方服务的情况下使用谷歌云功能发送电子邮件
- doxygen - 我有多个文件夹要包含在 doxywizard 中
- c++ - C++ 此代码如何工作(enable_if 构造函数/方法)?
- laravel - 使用 vue.js 和 Element-ui 在 Laravel 中上传和保存图像的正确方法
- vue.js - 在 Vue 和 Vuetify 中设置为禁用的 v-tabs
- osgi - 如何根据配置绑定动态引用?
- google-cloud-build - 如何让 Cloud Build 触发器在 GitHub 上显示名称?
- java - Java 舍入小数点后两位数,无 Math.round、BigDecimal 等
- javascript - addeventlistener 构建了多次