JavaRush /Java блог /Архив info.javarush /Кухня(); Задание N6.
terranum
28 уровень
Milan

Кухня(); Задание N6.

Статья из группы Архив info.javarush
Кухня(); Задание N6. - 1 Правила [Одномерные массивы] Дана последовательность чисел a1, a2, ..., an. Указать наименьшую длину числовой оси, содержащую все эти числа. Любителям сладостей: почему бы не сделать это через варарг?! ;)
Комментарии (28)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
timurnav Уровень 21
7 октября 2015
public static int method4(int... array) {
        if(array.length==0) return 0;
        Arrays.sort(array);
        return array[array.length-1] - array[0] + 1;
    }
RabenokDmitry Уровень 21
5 февраля 2015
<code>public static int getMinLengthAxe(int... arr) {
        if (arr.length <= 1)
            return 0;
        else {
            Arrays.sort(arr);
            return arr[arr.length - 1] - arr[0] + 1;
        }
    }</code>

Проходит тестовые примеры terranum, но во мне есть внутреннее сомнение, что при (0,0) должно возвращать 1, так как оба этих значения в одной точки и им никакая ось не нужна для отображения:)
Docktor91 Уровень 40
22 августа 2014
я понял))

public static void getSize(int...arg)
{
    System.out.println(«is here->'наименьшая длина числовой оси, содержащая все эти числа'»);
} 
Voronblack Уровень 17
22 августа 2014
Все, наконец то я понял что требуется
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;
        }
Voronblack Уровень 17
22 августа 2014
Немного подправил
public static int getMinRealAxis(int...arr)

    {
        if (arr.length == 0 )
            throw new IllegalArgumentException("Empty array");
        if (arr.length == 1 ) return arr[0];
        if (arr.length > 0)
            Arrays.sort(arr);
        return arr[1] - arr[0]     
    }
Voronblack Уровень 17
22 августа 2014
Я понимаю правильно будет так?
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];
    }
Docktor91 Уровень 40
22 августа 2014
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;
}

Как то так?
я ваще правильно понял?