HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>23 янв 2023</li>
2 <ul><li>23 янв 2023</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><h2>Задача: проверить массив на дубликаты</h2>
4 </ul><h2>Задача: проверить массив на дубликаты</h2>
5 <p>Решаем задачи, которые дают программистам на собеседованиях в IT-компаниях. Сегодня ищем в массиве повторяющиеся элементы.</p>
5 <p>Решаем задачи, которые дают программистам на собеседованиях в IT-компаниях. Сегодня ищем в массиве повторяющиеся элементы.</p>
6 <p>Иллюстрация: Polina Vari для Skillbox Media</p>
6 <p>Иллюстрация: Polina Vari для Skillbox Media</p>
7 <p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
7 <p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
8 <p><strong>Условие.</strong>Дан массив целых чисел - nums. Необходимо написать функцию, которая возвращает true, если в этом массиве хотя бы одно число повторяется дважды. Если же все элементы уникальны, функция должна вернуть false.</p>
8 <p><strong>Условие.</strong>Дан массив целых чисел - nums. Необходимо написать функцию, которая возвращает true, если в этом массиве хотя бы одно число повторяется дважды. Если же все элементы уникальны, функция должна вернуть false.</p>
9 Ввод: nums = [1,2,3,1] Вывод: true Ввод: nums = [1,2,3,4] Вывод: false Ввод: nums = [1,1,1,3,3,4,3,2,4,2] Вывод: true<p>Решить эту задачу самостоятельно и на разных языках программирования можно на <a>LeetCode</a>. Наше решение взято из телеграм-канала Сергея<a>Cracking code interview</a>.</p>
9 Ввод: nums = [1,2,3,1] Вывод: true Ввод: nums = [1,2,3,4] Вывод: false Ввод: nums = [1,1,1,3,3,4,3,2,4,2] Вывод: true<p>Решить эту задачу самостоятельно и на разных языках программирования можно на <a>LeetCode</a>. Наше решение взято из телеграм-канала Сергея<a>Cracking code interview</a>.</p>
10 <p><strong>Решение</strong></p>
10 <p><strong>Решение</strong></p>
11 <p>При решении подобных задач важно выбрать подходящий тип данных. Здесь мы исходим из такой логики: "повторяется дважды" → значит, ищем дубликаты. Следовательно, выбираем множество (set).</p>
11 <p>При решении подобных задач важно выбрать подходящий тип данных. Здесь мы исходим из такой логики: "повторяется дважды" → значит, ищем дубликаты. Следовательно, выбираем множество (set).</p>
12 <p>Мы создадим пустое множество и будем обходить весь массив, просто проверяя, находится ли элемент во множестве:</p>
12 <p>Мы создадим пустое множество и будем обходить весь массив, просто проверяя, находится ли элемент во множестве:</p>
13 <ul><li>если он ещё не находится - добавляем его;</li>
13 <ul><li>если он ещё не находится - добавляем его;</li>
14 <li>если элемент уже там - значит, мы встретили повторяющийся элемент и просто возвращаем true.</li>
14 <li>если элемент уже там - значит, мы встретили повторяющийся элемент и просто возвращаем true.</li>
15 </ul>public boolean containsDuplicate(int[] nums) { Set&lt;Integer&gt; set = new HashSet&lt;&gt;(); for (int i : nums) { if (set.contains(i)) { return true; } else { set.add(i); } } return false; }<p><strong>Результаты</strong></p>
15 </ul>public boolean containsDuplicate(int[] nums) { Set&lt;Integer&gt; set = new HashSet&lt;&gt;(); for (int i : nums) { if (set.contains(i)) { return true; } else { set.add(i); } } return false; }<p><strong>Результаты</strong></p>
16 <p><strong>Временная сложность:</strong>O(n) - так как в самом плохом случае мы проходимся по всему массиву.</p>
16 <p><strong>Временная сложность:</strong>O(n) - так как в самом плохом случае мы проходимся по всему массиву.</p>
17 <p><strong>Ёмкостная сложность:</strong>O(1) - нам нужно заранее определённое количество места в памяти.</p>
17 <p><strong>Ёмкостная сложность:</strong>O(1) - нам нужно заранее определённое количество места в памяти.</p>
18 <a>Научитесь: Профессия Java-разработчик + ИИ Узнать больше</a>
18 <a>Научитесь: Профессия Java-разработчик + ИИ Узнать больше</a>