0
我正在學習Java,並且作爲我工作的一部分,要求我能夠執行諸如計算數組中值的範圍(max - min + 1)之類的操作。我不允許使用像collections.min(array)這樣的方法。到目前爲止,我的解決辦法是這樣的:在數組中使用最小值的簡單問題
public static int range(int[] data){
int min = 99999999;
int max = 0;
int test = 0;
int range = 0;
for (int i = 0; i < data.length; i++){
test = data[i];
if (test > max)
max = test;
if (test < min)
min = test;
}
range = (max - min) + 1;
return range;
}
雖然它的工作對他們來說是不是特別優雅。 9999999的最小值有效,但如果我使用大於該值的數字出現問題,則不起作用。
我覺得應該有一個更好的解決方案,但我沒有找到一種方法來找到最小值,而無需將我的int min設置爲非常高的值。否則,數組可能會有非常大的數字,並且最小值永遠不會更改,因爲數組中的值始終大於它。
考慮使用Integer.MIN_VALUE的&& MAX_VALUE –
也無需存儲'range'只返回'(最大值 - 最小值)+ 1' –
有在Java中預定義的值稱爲Integer.MAX_VALUE的,它等於2的31次方 - 1是int數的最大值。 – AndreyS