Правила[Одномерные массивы]Дана последовательность чисел a1, a2, ..., an. Указать наименьшую длину числовой оси, содержащую все эти числа.Любителям сладостей: почему бы не сделать это через варарг?! ;)
Проходит тестовые примеры terranum, но во мне есть внутреннее сомнение, что при (0,0) должно возвращать 1, так как оба этих значения в одной точки и им никакая ось не нужна для отображения:)
public static int getMinRealAxis(int...arr)
{
int min = 0;
if (arr.length == 0 )
throw new IllegalArgumentException("Bad args");
if (arr.length == 1 ) return arr[0];
if (arr.length > 0)
Arrays.sort(arr);
min = arr[1] - arr[0];
for (int i = 0; i < arr.length - 1; i++)
min = min > arr[i + 1] - arr[i] ? arr[i + 1] - arr[i] : min;
return min;
}
public static int getMinRealAxis(int...arr)
{
if (arr.length <= 0 )
throw new IllegalArgumentException("Empty array");
if (arr.length > 0)
Arrays.sort(arr);
return arr[1] - arr[0];
}
public static int getSize(int... arr)
{
if (arr.length==0)
return 0; //ну или ексепшен можно кинуть
int min=arr[0];
int max=arr[0];
for (int i:arr)
{
min=i<min?i:min;
max=i>max?i:max;
}
return max-min;
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Проходит тестовые примеры terranum, но во мне есть внутреннее сомнение, что при (0,0) должно возвращать 1, так как оба этих значения в одной точки и им никакая ось не нужна для отображения:)
Как то так?
я ваще правильно понял?