Задача с СОБЕСЕДОВАНИЯ на позицию JUNIOR #java #программирование #собеседование #shorts

preview_player
Показать описание
#Java #УрокиJava #JavaДляНачинающих

_________________________________________________________________________
tags:

java, java tutorial, learn java, java tutorial for beginners, programming, java programming, tutorial, java full course, java beginner lesson, coding with john, java for beginners, how to code, java programming tutorial, программирование, джава, navin, java language, java placement, webdev, oracle, java coding, lesson, how to learn java, java programming for beginners, java course, how to code java, app development, java basics, java beginner, software engineer, programmer, learn java programming, learn java code, should you learn java, разработка, java code, developer, cloud, java virtual machine, how to code in java, learn to code java for beginners, learn java for beginners, jvm, jdk, java programming, java, как стать программистом, программирование, изучение языков программирования, менторинг программирование, разработка, курсы программирования онлайн, programming, программист, android, языки программирования, it, джава, java для начинающих, it курсы, front-end, программирование на java, java start, обучение java, develop, java уроки для начинающих, изучение java, code blog, выбор языка программирование, java программирование, начало программирование, javascript, уроки java, java уроки, программирование для начинающих, back-end, design, backend, как стать программистом с нуля, coding, java junior, java для чайников, программирование на java с нуля, как стать программистом самостоятельно, прямой эфир о java, как выучить java, как выучить java самостоятельно, как стать джавистом, java с нуля, java уроки с нуля, что учить java, язык программирования java, курсы программирования, js, сравнение, java tutorial for beginners, программирование с нуля, разработчик, курс java, как стать java разработчиком, уроки, джаваскрипт, python, для начинающих
Рекомендации по теме
Комментарии
Автор

📌ССЫЛКА НА TELEGRAM В ОПИСАНИИ ПРОФИЛЯ

senior_javist
Автор

В сете хранятся только уникальные элементы и метод add, если не ошибаюсь, возвращает true если элемент удалось поместить и false если такой элемент уже содержится в нем. Contains лишний, вернее, избыточный

Roy-hpnm
Автор

Solution = lambda array: not(set(array) == array)

leoproger
Автор

для hashset лучше установить ёмкость, сопоставимую с размером входящего массива.

Ырфь
Автор

А мне первое что в голову пришло это ковертировать int[] в сет и затем сравнить размеры

freizenfarklov
Автор

Лучше массив засунуть в set и если размер одинаковый то false, в противном случае true.

IgorAlov
Автор

А вот если бы можно было трогать исходный массив и было требование о минимальном потреблении памяти - можно было бы его ещё и отсортировать по пути)

vabka-
Автор

Смотрю шортсы и такое ощущение что на собеседовании только этот вопрос всем и задают

Sloneny
Автор

А то что сложность алгоритма будет линейной меня одного смутило? Есть алгоритмы n*log(n)

TrofimPost
Автор

Эту задачу можно решить при помощи BitSet. Этот класс малоизвестен, хотя он присутствует в Java ещё с версии 1.0

import java.util.BitSet;

public class Solution {
public static void main(String[] args) {
int[] {1, 2, 3, 5}));
}

public static boolean hasDuplicates(int[] arr) {
var bitSet = new BitSet();
for (int n : arr) {
if (bitSet.get(n)) {
return true;
}
bitSet.set(n);
}
return false;
}
}

prayer
Автор

Самое компактное по строкам кода решение:
var list = new ArrayList<Integer>(nums);
return new HashSet<Integer>(list).size() < list.size();
Хотя и не очень эффективно по памяти и времени.

thesircororo
Автор

Господин Синьор, тут contains() не нужен. Перегруженный метод add() интерфейса Set возвращает true или false в зависимости от того, удалось ли добавить элемент. Поэтому все упрощается до:

for (int i = 0; i < nums.length; i++) {
if(!set.add(nums[i])) {
return true;
}
}
return false;

realvall
Автор

print (any(a.count(i)>1 for i in a))

tinkerhowtolosetinkerhowto
Автор

Что то я не понял хэш сет же пустой а ты его не заполняешь но сравниешь есть ли у него значение массива nums

mineshorts
Автор

А слабо сделать stream().distinct() и просто сравнить размер полученного с размером исходного?

SergeySvotin
Автор

А если просто создать множество, заполнить его элементами массива и вернуть сравнение длины массива и кол-во элементов в множестве?

Немного проще, думаю

justpret
Автор

a = [1, 2, 3, 4, 1]
b = list(set(map(a.count, a)))
print(b[0] == len(b) == 1)

python

ismism
Автор

Решение на js. Создаем новый сет из исходного массива, снова конвертируем в массив и ретурним
arr == arr2

koak
Автор

groupBy(x => x).Any(gr =>gr.Count() > 1)

iteospace
Автор

А не проще ли на стримах это сделать?
Сейчас от джунов требуется знание stream api

ilyazii