Реальные задачи с собеседований | Java
3.53K subscribers
278 photos
36 videos
475 links
Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов)

Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy

Прислать задачи, реклама - @privatevoidmain
Download Telegram
Иннотех

// Ниже приведен код обновления статуса заказа.
// Необходимо найти проблемы и внести изменения в приведенный код.

@Service
public class OrderService {

@Autowired
private OrderRepository orderRepository;

private final NotificationService notificationService;

@Autowired
public OrderService(NotificationService notificationService) {
this.notificationService = notificationService;
}

public void updateOrderStatus(Long orderId, String newStatus) {
Order order = orderRepository.findById(orderId).get();

if (newStatus.equals("COMPLETED")) {
order.setStatus("COMPLETED");
orderRepository.save(order);
notificationService.notifyUser(order.getUserId(), "Your order is completed");
} else if (newStatus.equals("CANCELLED")) {
order.setStatus("CANCELLED");
orderRepository.save(order);
notificationService.notifyUser(order.getUserId(), "Your order is cancelled");
} else if (newStatus.equals("PENDING")) {
order.setStatus("PENDING");
orderRepository.save(order);
} else if (newStatus.equals("IN_PROGRESS")) {
order.setStatus("IN_PROGRESS");
orderRepository.save(order);
} else {
throw new IllegalArgumentException("Unsupported status: " + newStatus);
}
}
}

#innotech | Подписаться
1🔥12
Exon #sql

Даны таблицы
Customer
-id pk
-name
-address

Account
-id pk
-acc_number
-description
-customer_id fk

Fin_transaction
-id pk
-transactDate
-amount
-account_id fk
-description

У клиента может не быть лицевых счетов. По лицевому счету может не быть транзакций.

Необходимо написать SQL-запрос, возвращающий имя клиента, описание его лицевого счета и среднюю сумму транзакции по этому счету.


#exon| Подписаться
1👍5
Exon

Необходимо реализовать на Java метод, принимающий на вход коллекцию, в которой присутствуют строки, и удаляющий из переданной коллекции все строки, начинающиеся на "ааа". Сигнатура необходимого метода должна иметь вид:

public static void filterTripleA(Collection<String> strings);


#exon| Подписаться
1🔥2😱1
Exon

Дан массив double[N], необходимо реализовать на Java метод, возвращающий частное от деления разности максимального с минимальным элементов и среднего арифметического значения элементов массива. В случае ошибки требуемый метод должен возвращать только указанный Exception. Сигнатура требуемого метода должна иметь вид:
public static double foo(double[] sourceArray) throws MyException;


#exon| Подписаться
50👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
ПОЧЕМУ ТАКИЕ ЛЕГКИЕ ЗАДАЧИ? (я сам хз)

Есть несколько вариантов:
1. Собес состоит из кучи легких задач, которые затрагивают отдельные темы (например, пул стрингов, передача параметров, женерики, стримы и т.д.). Иногда в виде теста.
Во время решения задач могут задавать теоретические вопросы.
2. Почти тоже самое, но вместе с легкими задачами могут быть средние задачи, код-ревью
3. Задают теоретические вопросы и параллельно или в конце дают пару мелких задач (обычно java core + sql), чтобы оценить, насколько кандидат понимает о чем говорит.

Когда присылают эти задачи, в основном публикую по одной)
Когда будет больше подписчиков и соответственно задач, можно будет публиковать все сразу😉
1😁15👍3
Вконтакте

Места в кинотеатре расположены в один ряд. Чтобы сидеть максимально далеко от остальных зрителей в ряду, пришедший зритель выбирает место, где расстояние от него до ближайшего к нему зрителя будет наибольшим. Гарантируется, что в ряду всегда есть свободное место и уже сидит хотя бы один зритель. Напишите функцию, которая по заданному ряду мест (массиву из нулей и единиц) вернет расстояние от выбранного места до ближайшего зрителя.

// Input: [1, 0, 0, 0, 1]
// Output: 2

// Input: [1, 0, 1, 0, 1, 0, 0, 0, 1]
// Output: 2

// Input: [1, 0, 1, 0]
// Output: 1

public static int maxDistance(int[] seats) {
int maxDistance = 0;

for (int i = 0; i < seats.length; i++) {

}

}

#vk | Подписаться
1👍5
Такого еще не было - задачи не от кандидата,
а от собеседующего👀

СБЕР

Задачи на логику/на подумать -
1) Почему люки круглые?
2) Почему поезд стучит составами во время трогания?
3) Описать алгоритм поиска максимального этажа с которого не разобьётся хрустальный шар при броске.

#sber | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👎30🤯12🔥4😁31
x5 тех

Задача: Реализация функции подсчета островов на карте

Дана карта в виде двумерного массива, где 1 представляет сушу, а 0 - воду.
Остров определяется как группа смежных 1 (суши), соединенных горизонтально или вертикально Вы можете предположить, что все края карты окружены водой.

пример
{0,1,0,0,1},
{1,0,0,0,1}
ответ - 3


была похожая задача от тинькоф
#x5 | Подписаться
4👏1
Лига цифорвой экономики

Что будет выведено?

код по ссылке -
online-ide.com/aCBNFx8TIA
#digitalleague | Подписаться
👍2
СБЕР

Сделать код-ревью


public class SchetClienta {
public LinkedList<Double> history;

SomeCurrencyExchangeService service;

public SchetClienta(LinkedList<Double> initial) {
this.history = initial;
this.service = new SomeCurrencyExchangeService();
}

public void setPurchases(Double money) {
history.add(money);
}

public boolean equals(Object o) {
if (this == o) {
return true;
}
SchetClienta other = (SchetClienta) o;
return history == other.history;
}

Double transferToTheCurrency(String currency) {
AtomicReference<Double> sum = new AtomicReference<>(0.0);
try {
history.forEach(it -> {
Double converted = service.getValueForCurrency(CurrencyEnum.valueOf(currency), it);
sum.accumulateAndGet(converted, Double::sum);
});

return sum.get();
} catch (Throwable t) {
return 0.0;
}
}
}


#sber | Подписаться
👍3
Когда друг спросил, почему ты втихаря сидел на самом крутом канале по Java и молчал:

📏📏📏📏📏📏📏📏📏📏
Приглашайте друзей/коллег - https://t.me/+K4vJFdalwlthYTQy
Please open Telegram to view this post
VIEW IN TELEGRAM
😁82
Яндекс #repeat

Прислали задачу с первого этапа - все еще просят написать банкомат)
Заново публиковать не стану, условия те же, как и раньше - https://t.me/java_interviews/316

#yandex | Подписаться
👍7😁2
Озон

Написать потокобезопасный кэш массива размером N целых чисел, который в методе put() принимает Map<Integer,Integer>, где ключи - индексы в массиве, а значения - новые значения для ячеек массива по соответствующему индексу, а в методе get() принимает список индексов, по которым нужно вернуть значения, в ответ возращает список значений соответствующих ячеек. При этом потребитель кэша не должен получать неконсистентное состояние при использовании метода get().
interface Cache {
void put(Map<Integer, Integer> batch);
List<Integer> get(List<Integer> indicies);
}

class ThreadsafeCache implements Cache {
.....
}

#ozon | Прислать задачу | Подписаться
🔥14
Genius group

РК1;10;url1
РК3;100;url1,url2
РК2;1000;url2
РК3;20;url1,url2,url3
РК2;2000;url3
РК1;33;url1,url3
РК3;30;url1,url3
РК2;3000;url3
=======
РК1 - рекламная компания 1.
Второй столбик - кол-во показов (1, 10, 1000, 20....)
url1 - сайт где был показ


Нужно прочитать файл и напечатать результат, как показано ниже по возрастанию показов:
Рекламная компания, общее количество показов, все сайты, где были показы через запятую

РК1;43;url1,url3
РК3;150;url1,url2,url3
РК2;6000;url2,url3
#geniusgroup | Прислать задачу | Подписаться
👍6
Лига цифорвой экономики

Написать функцию преобразования строки и оценить ее сложность
Пример: "Иванов Иван Иванович" -> "Чивонави Нави Вонави"

#repeat
#digitalleague | Подписаться
🔥3
Админ ждет новые задачи от подписчиков:

___
_
Присылайте ваши задачи с собесов мне в личку - @privatevoidmain 🤝
😁23🥰4🔥3
Скидывать задачи, если приславший не помнит, от какой компании?

👍 - да
👎 - нет
50👍167