@@svbxr Здравствуйте, если меня спрашиваете, то наверное до 7 го но в тестировочном режиме не за деньги, на тот момент когда начинал была такая возможность. Работу не искал так как планы поменялись и поехал работать с женой в Великобританию. Теперь вернулся, началась война и опять взялся за обучение. Интересен андроид. Вот вам и жыза)
Как раз на собесе недавно была задачка найти наименьшее произведение пары чисел в массиве. Вместо двойного цикла, где каждое с каждым число перемножается - как раз нужно найти два минимальных значения и их перемножить - получится О(n) вместо n в квадрате. Спасибо за уроки - очень помогают вспомнить все нюансы Java
Здравствуйте Сергей, нравятся ваши видео, спасибо вам. У меня просьба, не могли бы вы разобрать алгоритм "matching parenthesis problem", не уверен как на русском правильно будет, "проблема соответствия скобок" возможно. Вроде алгоритм не сложный, но хотелось бы в вашем исполнении увидеть. Спасибо)
здравствуйте,подскажите ход мысли, если требуется :Должно быть введено минимум два числа и еще : Вывести на экран второе по величине целое число после минимального из введенных с клавиатуры???
прикольное решение а меня немного понесло и вообще другой подход выбрал. я из Гуавы использовал фиксированную очередь на 2 элемента (EvictingQueue)и просто пихал туда все минимальные значения. в итоге последние 2 там так и остались. кстати я не нашел реализации такой очереди в стандартной Джавеб что как по мне странно...
Привет. Интересное видео получилось, хотя мне не очень понятно где этот алгоритм может пригодиться. Впрочем, видео как всегда отличное и легко понимаемое) Лично я бы хотел, чтобы ты записал ролик по андроиду на тему продвинутой верстки. За пример хотел бы, чтобы ты взял приложение Medium с его довольно интересным списком.
Привет. Я так подозреваю, что этот алгоритм используют в качестве домашнего задания при обучении начинающих программистов, с целью развития алгоритмических навыков. Основное практическое применение - заставить студентов подумать)
@@arhitutorials Тоже не совсем понимаю в чем смысл этого алгоритма. Ведь мы может написать int min2 = array[array.length - 2] после сортировки по убыванию, либо же int min2 = array[1] после сортировки по возрастанию.
@@erikjoomla9872 Это да, но к этому нужно еще сортировку выполнить. А тут речь о том, что можно без сортировки обойтись, да еще и за один проход по массиву.
Сергей спасибо за видео! Не понял только момент на 5:40, если min2 != Integer.MAX_VALUE, то... Вот почему на этом моменте мы в условие ставим именно Integer.MAX_VALUE?
Изначально переменная инициализирована значением Integer.MAX_VALUE. Если после прохода по массиву там так и осталось Integer.MAX_VALUE, то значит переменная не менялась, и второго по минимальности элемента в массиве нет. То есть, скорее всего массив состоит из одинаковых значений. В этой реализации предполагается, что самого Integer.MAX_VALUE массив не содержит.
@@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);
Здравствуйте, нам учитель в универе дал задачку, суть заключается в том что бы разделить какой то массив на n частей, можно разделить только последовательно, но надо разделить так что бы, максимизировать минимальное число при суммирований значений разделенных массивов. Но я никак не смог ее решить и в инете поискал, тоже ничего не нашел. Можете рассмотреть данную задачу в следующих видео?
Привет. Если я правильно понял постановку задачи, массив надо разделить n частей. Далее считается сумма элементов каждой части. Необходимо провести такое разделение, чтоб самая маленькая из этих сумм была как можно больше. То есть, в идеале надо стремиться так разделить массив, чтоб все суммы были одинаковыми. Правильно? При этом число n может задаваться любым при старте алгоритма? Похоже на разновидность задачи о рюкзаке.
в этом цикле мы перебираем все элементы массива (array[i] ) и если min меньше любого элемента массива - то присваиваем переменной min значение массива. Но так как задача стоит перехватить предпоследнее значение min - то вводим еще одну переменную min2. и сначала делаем ее min. а потом min присваиваем еще раз минимальное значение, если возможно. поэтому min2 = min; // присваиваем min2 минимальное значение - min min = array[i]; // еще раз пытаемся найти минимальное значение
@@ТаримЗиямов не использовать странных синтетических предположений. null - если ничего нет - достаточно естественное значение; не любовь к null-ам? - Optional всех спасёт.
@@beerbis ИМХО, не самое хорошее решение, код сильно усложниться. Тогда уж лучше флаг ввести, который будет менять свое значение при изменение переменной min2, и в конце при выводе результатов учитывать его, второй if тоже чутка изменить надо, в первом условии вместо < поставить
Очень помогло для решения задачи на JavaRush! Благодарю!
Да я тоже оттуда) самому задача не далась,только тут понял что двигался в правильном направлении и был очень близко.
Жыза)
До какого уровня дошли и нашли ли работу?
@@svbxr Здравствуйте, если меня спрашиваете, то наверное до 7 го но в тестировочном режиме не за деньги, на тот момент когда начинал была такая возможность. Работу не искал так как планы поменялись и поехал работать с женой в Великобританию. Теперь вернулся, началась война и опять взялся за обучение. Интересен андроид. Вот вам и жыза)
@@magellan127 спасибо за историю, удачи вам!)
Ваше видео помогло мне пройти техническое интервью!! Спасибо большое!!!
Огромное спасибо!!!!!!!!!!!!!!!!!!!!!!
Огромная благодарность! Вы так хорошо объясняете!!
Как раз на собесе недавно была задачка найти наименьшее произведение пары чисел в массиве. Вместо двойного цикла, где каждое с каждым число перемножается - как раз нужно найти два минимальных значения и их перемножить - получится О(n) вместо n в квадрате.
Спасибо за уроки - очень помогают вспомнить все нюансы Java
Такая уютная музыка на канале
Гениально и просто! Спасибо вам большое Сергей, вы так хорошо всё объясняете. Я даже подписался не глядя.
Спасибо! Все четко, понятно и подробно!
Спасибо за видео!
Спасибо вам!
Здравствуйте Сергей, нравятся ваши видео, спасибо вам. У меня просьба, не могли бы вы разобрать алгоритм "matching parenthesis problem", не уверен как на русском правильно будет, "проблема соответствия скобок" возможно. Вроде алгоритм не сложный, но хотелось бы в вашем исполнении увидеть. Спасибо)
Кто с джавараша ставь лойс!
До какого уровня дошел и нашел ли работу?
здравствуйте,подскажите ход мысли, если требуется :Должно быть введено минимум два числа и еще : Вывести на экран второе по величине целое число после минимального из введенных с клавиатуры???
прикольное решение а меня немного понесло и вообще другой подход выбрал. я из Гуавы использовал фиксированную очередь на 2 элемента (EvictingQueue)и просто пихал туда все минимальные значения. в итоге последние 2 там так и остались. кстати я не нашел реализации такой очереди в стандартной Джавеб что как по мне странно...
годнота, лайк)
Привет. Интересное видео получилось, хотя мне не очень понятно где этот алгоритм может пригодиться. Впрочем, видео как всегда отличное и легко понимаемое)
Лично я бы хотел, чтобы ты записал ролик по андроиду на тему продвинутой верстки. За пример хотел бы, чтобы ты взял приложение Medium с его довольно интересным списком.
Привет. Я так подозреваю, что этот алгоритм используют в качестве домашнего задания при обучении начинающих программистов, с целью развития алгоритмических навыков. Основное практическое применение - заставить студентов подумать)
@@arhitutorials Тоже не совсем понимаю в чем смысл этого алгоритма. Ведь мы может написать int min2 = array[array.length - 2] после сортировки по убыванию, либо же int min2 = array[1] после сортировки по возрастанию.
@@erikjoomla9872 Это да, но к этому нужно еще сортировку выполнить. А тут речь о том, что можно без сортировки обойтись, да еще и за один проход по массиву.
@@erikjoomla9872 только если у тебя массив из повторяющихся чисел, например 1, 4,1,7,3,1 то так ты тройку не найдешь
@@alexndra1190 , найдешь, проверил !
Зачем min2 присваивать 2 миллиарда 147+?Андрей объясните пожалуйста, нифига не пойму, программа и без того нормально работает
спасибо!
Сергей спасибо за видео! Не понял только момент на 5:40, если min2 != Integer.MAX_VALUE, то... Вот почему на этом моменте мы в условие ставим именно Integer.MAX_VALUE?
Изначально переменная инициализирована значением Integer.MAX_VALUE. Если после прохода по массиву там так и осталось Integer.MAX_VALUE, то значит переменная не менялась, и второго по минимальности элемента в массиве нет. То есть, скорее всего массив состоит из одинаковых значений.
В этой реализации предполагается, что самого Integer.MAX_VALUE массив не содержит.
@@arhitutorials спасибо огромное) теперь дошло
сортировка массива а потом присвоение 1 элемента массива не вариант вообще.так как если есть мин.число повторяется несколько раз, то как найти второе?
Добрый вечер. Не подскажете метод для прогонки 2 раза что найти массив сначала минимальный а потом предминимальный?
Так все также, только при второй прогонки если arr[i] ==min то ни чего не делаешь.
@@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);
2 минимальный найти не могу
Здравствуйте Сергей! А что если нужно найти несколько min и определить их кол-во?
Можно найти минимум, а потом второй раз пройтись по массиву и посчитать сколько раз этот элемент встречается, если я правильно понял вопрос.
А как такое повторить на строках, не могу достать самое короткое слово, если их два одинаковых, то второе? спасибо
Здравствуйте, нам учитель в универе дал задачку, суть заключается в том что бы разделить какой то массив на n частей, можно разделить только последовательно, но надо разделить так что бы, максимизировать минимальное число при суммирований значений разделенных массивов. Но я никак не смог ее решить и в инете поискал, тоже ничего не нашел. Можете рассмотреть данную задачу в следующих видео?
Привет. Если я правильно понял постановку задачи, массив надо разделить n частей. Далее считается сумма элементов каждой части. Необходимо провести такое разделение, чтоб самая маленькая из этих сумм была как можно больше. То есть, в идеале надо стремиться так разделить массив, чтоб все суммы были одинаковыми. Правильно?
При этом число n может задаваться любым при старте алгоритма?
Похоже на разновидность задачи о рюкзаке.
@@arhitutorials да, вы правильно поняли
я новичок в программировании. Разбираю шаг за шагом. Объясните пожалуйста две строчки
min2 = min;
min = array[i];
в этом цикле мы перебираем все элементы массива (array[i] ) и если min меньше любого элемента массива - то присваиваем переменной min значение массива.
Но так как задача стоит перехватить предпоследнее значение min - то вводим еще одну переменную min2. и сначала делаем ее min. а потом min присваиваем еще раз минимальное значение, если возможно.
поэтому
min2 = min; // присваиваем min2 минимальное значение - min
min = array[i]; // еще раз пытаемся найти минимальное значение
`int[] array = {1, Integer.MAX_VALUE}` - пам-пам.
Как быть в таком случае?
@@ТаримЗиямов не использовать странных синтетических предположений. null - если ничего нет - достаточно естественное значение; не любовь к null-ам? - Optional всех спасёт.
@@beerbis Спасибо большое за ответ!
@@beerbis ИМХО, не самое хорошее решение, код сильно усложниться. Тогда уж лучше флаг ввести, который будет менять свое значение при изменение переменной min2, и в конце при выводе результатов учитывать его, второй if тоже чутка изменить надо, в первом условии вместо < поставить
ПАТПИСКАА
Это не работает...