使用其最大值查找数组中的最小值

时间:2015-02-14 13:52:35

标签: java

你能帮忙解决这个问题吗?

给定一个正数的int数组,写一个返回的方法int findndMax(int[] array) 最大值。然后,编写另一个名为findMin的方法来查找最小元素 不比较数组元素(使用findMax)?

public int findMax(int[] array){ 
    int max = array[0]; 
    for (int i = 0; i < array.length; i++) { 
        if (array[i] > max) 
            max = array[i]; 
    } 
    return max; 
} 

1 个答案:

答案 0 :(得分:2)

如果您已编写方法findMax,则将所有数组元素与 -1 相乘,找到最大值并将答案乘以 -1 。但是无论如何这都没有效率,因为你必须经历所有数组元素,可能两次。

public int findMin(int[] array) { 
    for (int i = 0; i < array.length; i++) 
        array[i] *= -1;
    int min = -1 * findMax(array); 
    for (int i = 0; i < array.length; i++) 
        array[i] *= -1;
    return min; 
} 

如果你想用一个循环来做:

public int findMin(int[] array) { 
    int[] aux = new int[array.length];
    for (int i = 0; i < array.length; i++) 
        aux[i] = -1 * array[i];
    int min = -1 * findMax(aux); 
    return min; 
}