Java:在数组中查找大于零的最小数字

时间:2015-04-14 12:11:40

标签: java arrays

找到最小的数字很容易。我发现很难在数组中找到一个大于零的最小数字。

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

3 个答案:

答案 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];
}