找到最小的数字很容易。我发现很难在数组中找到一个大于零的最小数字。
public static int findSmallestOld(int[] arr) {
int smallest = arr[0];
for(int i=1; i<arr.length; i++) {
if(arr[i]<smallest) {
smallest = arr[i];
}
}
return smallest;
}
很少有示例输入可以是
{0,0,0,3}输出= 3
{0,1,0,4}输出= 1
答案 0 :(得分:5)
public static int findSmallest(int[] arr) {
int smallest = Integer.MAX_VALUE;
for(int i=0; i<arr.length; i++) {
if(arr[i] > 0 && arr[i]<smallest) {
smallest = arr[i];
}
}
return smallest;
}
最后,如果最小== Integer.MAX_VALUE,则所有数组都填充为零。
答案 1 :(得分:0)
改变这个:
if(arr[i]<smallest)
到
if(arr[i]<smallest && arr[i] > 0)
否则它将被任何值覆盖,无论它是否为正数。
答案 2 :(得分:-1)
if(arr[i]<smallest && arr[i]>0) {
smallest = arr[i];
}