Java. Поиск второго по минимальности элемента в массиве.

Поділитися
Вставка
  • Опубліковано 17 лис 2024

КОМЕНТАРІ • 55

  • @magellan127
    @magellan127 4 роки тому +30

    Очень помогло для решения задачи на JavaRush! Благодарю!

    • @ololoshololoev.5852
      @ololoshololoev.5852 2 роки тому +4

      Да я тоже оттуда) самому задача не далась,только тут понял что двигался в правильном направлении и был очень близко.

    • @svbxr
      @svbxr 2 роки тому

      Жыза)

    • @svbxr
      @svbxr 2 роки тому

      До какого уровня дошли и нашли ли работу?

    • @magellan127
      @magellan127 2 роки тому +1

      @@svbxr Здравствуйте, если меня спрашиваете, то наверное до 7 го но в тестировочном режиме не за деньги, на тот момент когда начинал была такая возможность. Работу не искал так как планы поменялись и поехал работать с женой в Великобританию. Теперь вернулся, началась война и опять взялся за обучение. Интересен андроид. Вот вам и жыза)

    • @svbxr
      @svbxr 2 роки тому +1

      @@magellan127 спасибо за историю, удачи вам!)

  • @MrVakial
    @MrVakial 4 роки тому +12

    Ваше видео помогло мне пройти техническое интервью!! Спасибо большое!!!

  • @waldstalwaldstal3654
    @waldstalwaldstal3654 7 годин тому

    Огромное спасибо!!!!!!!!!!!!!!!!!!!!!!

  • @stellarywisdom3132
    @stellarywisdom3132 Рік тому

    Огромная благодарность! Вы так хорошо объясняете!!

  • @Chestor1988
    @Chestor1988 2 роки тому +1

    Как раз на собесе недавно была задачка найти наименьшее произведение пары чисел в массиве. Вместо двойного цикла, где каждое с каждым число перемножается - как раз нужно найти два минимальных значения и их перемножить - получится О(n) вместо n в квадрате.
    Спасибо за уроки - очень помогают вспомнить все нюансы Java

  • @BigRock379
    @BigRock379 Рік тому

    Такая уютная музыка на канале

  • @TheGloriousRussian
    @TheGloriousRussian 3 роки тому +1

    Гениально и просто! Спасибо вам большое Сергей, вы так хорошо всё объясняете. Я даже подписался не глядя.

  • @РафаэльМустафин-ч4к

    Спасибо! Все четко, понятно и подробно!

  • @andrei8299
    @andrei8299 3 роки тому

    Спасибо за видео!

  • @Andrzej3935
    @Andrzej3935 3 роки тому

    Спасибо вам!

  • @Андрей-Зубков
    @Андрей-Зубков 5 років тому

    Здравствуйте Сергей, нравятся ваши видео, спасибо вам. У меня просьба, не могли бы вы разобрать алгоритм "matching parenthesis problem", не уверен как на русском правильно будет, "проблема соответствия скобок" возможно. Вроде алгоритм не сложный, но хотелось бы в вашем исполнении увидеть. Спасибо)

  • @Artibuk
    @Artibuk 3 роки тому +16

    Кто с джавараша ставь лойс!

    • @svbxr
      @svbxr 2 роки тому

      До какого уровня дошел и нашел ли работу?

  • @michaelu-bahn-fahrer1693
    @michaelu-bahn-fahrer1693 2 роки тому

    здравствуйте,подскажите ход мысли, если требуется :Должно быть введено минимум два числа и еще : Вывести на экран второе по величине целое число после минимального из введенных с клавиатуры???

  • @kensaitakeso
    @kensaitakeso 2 роки тому

    прикольное решение а меня немного понесло и вообще другой подход выбрал. я из Гуавы использовал фиксированную очередь на 2 элемента (EvictingQueue)и просто пихал туда все минимальные значения. в итоге последние 2 там так и остались. кстати я не нашел реализации такой очереди в стандартной Джавеб что как по мне странно...

  • @vitaliysmirnov7057
    @vitaliysmirnov7057 4 роки тому

    годнота, лайк)

  • @avemaria3978
    @avemaria3978 5 років тому +1

    Привет. Интересное видео получилось, хотя мне не очень понятно где этот алгоритм может пригодиться. Впрочем, видео как всегда отличное и легко понимаемое)
    Лично я бы хотел, чтобы ты записал ролик по андроиду на тему продвинутой верстки. За пример хотел бы, чтобы ты взял приложение Medium с его довольно интересным списком.

    • @arhitutorials
      @arhitutorials  5 років тому

      Привет. Я так подозреваю, что этот алгоритм используют в качестве домашнего задания при обучении начинающих программистов, с целью развития алгоритмических навыков. Основное практическое применение - заставить студентов подумать)

    • @erikjoomla9872
      @erikjoomla9872 4 роки тому

      @@arhitutorials Тоже не совсем понимаю в чем смысл этого алгоритма. Ведь мы может написать int min2 = array[array.length - 2] после сортировки по убыванию, либо же int min2 = array[1] после сортировки по возрастанию.

    • @arhitutorials
      @arhitutorials  4 роки тому

      @@erikjoomla9872 Это да, но к этому нужно еще сортировку выполнить. А тут речь о том, что можно без сортировки обойтись, да еще и за один проход по массиву.

    • @alexndra1190
      @alexndra1190 3 роки тому

      @@erikjoomla9872 только если у тебя массив из повторяющихся чисел, например 1, 4,1,7,3,1 то так ты тройку не найдешь

    • @АлександрБадаландабад
      @АлександрБадаландабад 3 роки тому +1

      @@alexndra1190 , найдешь, проверил !

  • @Anton-wz1ch
    @Anton-wz1ch Рік тому

    Зачем min2 присваивать 2 миллиарда 147+?Андрей объясните пожалуйста, нифига не пойму, программа и без того нормально работает

  • @МаксимКоротчий
    @МаксимКоротчий 4 роки тому

    спасибо!

  • @rollingdice
    @rollingdice 2 роки тому

    Сергей спасибо за видео! Не понял только момент на 5:40, если min2 != Integer.MAX_VALUE, то... Вот почему на этом моменте мы в условие ставим именно Integer.MAX_VALUE?

    • @arhitutorials
      @arhitutorials  2 роки тому +3

      Изначально переменная инициализирована значением Integer.MAX_VALUE. Если после прохода по массиву там так и осталось Integer.MAX_VALUE, то значит переменная не менялась, и второго по минимальности элемента в массиве нет. То есть, скорее всего массив состоит из одинаковых значений.
      В этой реализации предполагается, что самого Integer.MAX_VALUE массив не содержит.

    • @rollingdice
      @rollingdice 2 роки тому

      @@arhitutorials спасибо огромное) теперь дошло

  • @alexndra1190
    @alexndra1190 3 роки тому

    сортировка массива а потом присвоение 1 элемента массива не вариант вообще.так как если есть мин.число повторяется несколько раз, то как найти второе?

  • @ivanpavlov2798
    @ivanpavlov2798 2 роки тому

    Добрый вечер. Не подскажете метод для прогонки 2 раза что найти массив сначала минимальный а потом предминимальный?

    • @dionisll
      @dionisll 2 роки тому

      Так все также, только при второй прогонки если arr[i] ==min то ни чего не делаешь.

    • @ivanpavlov2798
      @ivanpavlov2798 2 роки тому

      @@dionisllнашел минимальный, но 2 по минимальности не знаю как прописать

    • @dionisll
      @dionisll 2 роки тому

      @@ivanpavlov2798 Серьезно? Я тебе и так все написал. Может тебе и код написать? Ладно, держи.
      int[] arr = {7, 5, 10, 1, 5, 8, 3, 11};
      int min = arr[0];
      for (int i = 0; i < arr.length; i++) {
      if (min > arr[i]) {
      min = arr[i];
      }
      }
      System.out.println(min);
      int min2 = arr[0];
      for (int i = 0; i < arr.length; i++) {
      if (min2 > arr[i]) {
      if (min != arr[i]) {
      min2 = arr[i];
      }
      }
      }
      System.out.println(min2);

    • @ivanpavlov2798
      @ivanpavlov2798 2 роки тому

      2 минимальный найти не могу

  • @WhiteSmog-o3j
    @WhiteSmog-o3j 3 роки тому

    Здравствуйте Сергей! А что если нужно найти несколько min и определить их кол-во?

    • @arhitutorials
      @arhitutorials  3 роки тому

      Можно найти минимум, а потом второй раз пройтись по массиву и посчитать сколько раз этот элемент встречается, если я правильно понял вопрос.

  • @МашаРожко-л1х
    @МашаРожко-л1х 3 роки тому

    А как такое повторить на строках, не могу достать самое короткое слово, если их два одинаковых, то второе? спасибо

  • @jakob8835
    @jakob8835 5 років тому

    Здравствуйте, нам учитель в универе дал задачку, суть заключается в том что бы разделить какой то массив на n частей, можно разделить только последовательно, но надо разделить так что бы, максимизировать минимальное число при суммирований значений разделенных массивов. Но я никак не смог ее решить и в инете поискал, тоже ничего не нашел. Можете рассмотреть данную задачу в следующих видео?

    • @arhitutorials
      @arhitutorials  5 років тому

      Привет. Если я правильно понял постановку задачи, массив надо разделить n частей. Далее считается сумма элементов каждой части. Необходимо провести такое разделение, чтоб самая маленькая из этих сумм была как можно больше. То есть, в идеале надо стремиться так разделить массив, чтоб все суммы были одинаковыми. Правильно?
      При этом число n может задаваться любым при старте алгоритма?
      Похоже на разновидность задачи о рюкзаке.

    • @jakob8835
      @jakob8835 5 років тому

      @@arhitutorials да, вы правильно поняли

  • @TheSkovorodker
    @TheSkovorodker 2 роки тому

    я новичок в программировании. Разбираю шаг за шагом. Объясните пожалуйста две строчки
    min2 = min;
    min = array[i];

    • @hmerio
      @hmerio 2 роки тому +3

      в этом цикле мы перебираем все элементы массива (array[i] ) и если min меньше любого элемента массива - то присваиваем переменной min значение массива.
      Но так как задача стоит перехватить предпоследнее значение min - то вводим еще одну переменную min2. и сначала делаем ее min. а потом min присваиваем еще раз минимальное значение, если возможно.
      поэтому
      min2 = min; // присваиваем min2 минимальное значение - min
      min = array[i]; // еще раз пытаемся найти минимальное значение

  • @beerbis
    @beerbis 3 роки тому +1

    `int[] array = {1, Integer.MAX_VALUE}` - пам-пам.

    • @ТаримЗиямов
      @ТаримЗиямов 3 роки тому

      Как быть в таком случае?

    • @beerbis
      @beerbis 3 роки тому

      @@ТаримЗиямов не использовать странных синтетических предположений. null - если ничего нет - достаточно естественное значение; не любовь к null-ам? - Optional всех спасёт.

    • @ТаримЗиямов
      @ТаримЗиямов 3 роки тому

      @@beerbis Спасибо большое за ответ!

    • @АлександрБадаландабад
      @АлександрБадаландабад 3 роки тому

      @@beerbis ИМХО, не самое хорошее решение, код сильно усложниться. Тогда уж лучше флаг ввести, который будет менять свое значение при изменение переменной min2, и в конце при выводе результатов учитывать его, второй if тоже чутка изменить надо, в первом условии вместо < поставить

  • @vladkazmin9398
    @vladkazmin9398 2 роки тому

    ПАТПИСКАА

  • @eugenmann
    @eugenmann 9 місяців тому

    Это не работает...