en
Feedback
Реальные задачи с собеседований | Java

Реальные задачи с собеседований | Java

Open in Telegram

Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов) Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy Прислать задачи, реклама - @privatevoidmain

Show more
4 354
Subscribers
+324 hours
+47 days
+2030 days
Posts Archive
WB #sql
Создать таблицу автор(id, name, age), книга(id, title, author_id), какие есть ограничения? + Если нужно, таблица связей для отношения многие‑ко‑многим. Cделать запросы на получение автора по книге, где возраст автора меньше 40. Решить через JOIN.
#wilberries Прислать задачу | Подписаться

Лига цифорвой экономики Описание задачи и код по ссылке - online-ide.com/rmF4kxy7d8 #digitalleague | Подписаться
Лига цифорвой экономики Описание задачи и код по ссылке - online-ide.com/rmF4kxy7d8 #digitalleague | Подписаться

Сбер #repeat #sql Вывести имена клиентов, у которых на активных(status = open) счетах больше 10000
CREATE TABLE clients ( client_id int primary key, name varchar(100), manager varchar(255) ); CREATE TABLE accounts ( account_id int primary key, client_id int, account_number varchar(255), balance decimal(10, 2), created_at date, status varchar(10), foreign key (client_id) references clients (client_id) );
#sber Прислать задачу | Подписаться

Всех с окончанием рабочей недели) #fridaymemes

Тбанк
Программист Изосим хочет в отпуск, длительностью не меньше, чем k дней подряд. Тимлид Иннокентий не отпускает Изосима в отпуск, если в день отсутствия Изосима будет релиз. На вход получаем k — минимальную продолжительность отпуска, на который согласен Изосим, и список дней в виде массива из чисел 0 (релиза не будет) и 1 (запланирован релиз). Найти количество вариантов для отпуска Изосим, с учетом того, что отпуск не должен прерываться рабочими днями. findDayoffs(2, [0,0,1,0,0]) -> 2 findDayoffs(1, [0,0,1,0]) -> 4 // Три варианта продолжительностью 1 день и один вариант 2 дня findDayoffs(3, [0,0,1,0,0]) -> 0 #include <stdio.h> int main(void) { printf("Hello, world!"); return 0; }
#tbank Прислать задачу | Подписаться

Яндекс
/** * Постамат - автоматическая станция приёма/выдачи посылок. * В маркете формируются заказы, и хочется добавить возможность получения через постамат. * Запускаем MVP: небольшая аудитория пользователей, несколько постаматов в Москве. * При заказе пользователь сможет выбрать, что хочет получить заказ в постамате. * * В рамках задачи нужно реализовать код для MVP решения: * - курьер привозит заказ и пробует положить его в ячейку, указывая номер заказа. Постамат сам выбирает ячейку и возвращает в ответ. Она откроется вызывающим этот метод кодом. * - после того, как заказ положили в ячейку, пользователю отправляется СМС c кодом получения. Заказ будет ждать вечно * - в случае любых ошибок - курьер забирает заказ назад и попробует положить заказ в ячейку на следующий день (для MVP это ок) * - пользователь может получить заказ по коду выдачи из СМС. При вводе кода выдачи постамат должен вывести на экран текст "ваш заказ ХХХ в ячейке YYY", ячейка откроется сама. * * Ограничения: * - все ячейки одного размера, но их может быть разное количество, зависит от конкретного постамата * - один заказ - одна коробка, она влезает в ячейку * - ячейки каждого постамата пронумерованы * - каждый постамат сам хранит своё состояние * * Для отправки сообщения пользователю надо использовать клиент UserNotificationApi. */ class PostalBox { private final UserNotificationApi notificationApi; // нужно реализовать методы хранения и выдачи заказа } /** * Синхронный клиент, вызывающий postalbox.notify.market.yandex.net * Реализацию интерфейса описывать не нужно. */ interface UserNotificationApi { // нужно описать метод(ы) для отправки сообщения с кодом выдачи // в ответ придёт код выдачи, который был отправлен пользователю }
#yandex Прислать задачу | Подписаться

Озон
interface Cache { // Метод для обновления каша через мутацию void bulkUpdate(Updater updater); // Метод, который принимает индексы для чтения long[] bulkRead(int[] indices); } // Интерфейс, через который пользователи каша обновляют его interface Updater { void updateCurrentState(long[] currentCacheState); } public void main() { var cache = new SimpleCache(); cache.bulkUpdate(arr -> { arr[0] = 123; arr[1] = 456; }); var cacheValues = cache.bulkRead(new int[]{1, 2}); System.out.println(Arrays.toString(cacheValues)); } Нужно реализовать "кэш", который хранит лонги по индексу. Размер кэша - 10 элементов. Реализует два метода: void bulkUpdate(Updater updater) и long[] bulkRead(int[] indices). bulkUpdate обновляет значения пачкой в текущем состоянии кэша, in-place. bulkRead получает пачкой необходимые лонги из кэша по индексам. Условия: - Есть N (константа) потоков которые кэш читают. - Есть 1 поток, который кэш обновляет. - Читатель должен быть защищён от dirty-read. То есть, если происходит мутация A -> B, то читатель должен видеть только конечное состояние (A или B), но никогда промежуточное. - Чтение должно быть неблокирующим. - Запись может быть блокирующей. - Входные данные можно считать всегда валидными (не null; индексы только от 0 до 9 включительно).
#ozon Прислать задачу | Подписаться

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

у нас ибшники требуют установить на макос софт, который все логирует и делает скрин экрана каждую минуту🫡, или предлагают работать через rdp. ну или можно перейти на винду Как у вас в компании с этим? 👍- нет следящего софта 👎- есть следящий софт 🤔- есть тайм-трекер

web tech Сделать ревью
public class UserUpdater {     @Autowired     private CompanyRepository companyRepository;     @Autowired     private UserRepository userRepository;     @Autowired     private RemoteUserInfoProvider remoteUserInfoProvider;     private Logger logger = Logger.getLogger(UserUpdater.class.getName());     public void fillUsersData() {         try {             companyRepository.findAll().forEach(company ->                     updateUsersData(company.getUsers())             );         } catch (Exception e) {             logger.error("Error");         }     }     @Transactional     private void updateUsersData(             List<User> users     ) {         // tx.begin         userRepository.lockUsers(users);         users.parallelStream().forEach(user -> {                     UserInfo userInfo = remoteUserInfoProvider.getUserInfo(user.getId());                     user.updateData(userRepository); // update user fields                     userRepository.save(user);                 }         );     } }
Прислать задачу | Подписаться

когда знаешь, что у подписчиков есть задачи, но не можешь доказать за 3 недели было 5 задач от 2 подписчиков🫡

Кто ищет работу, сколько у вас было техсобесов за эту неделю?
Anonymous voting

Всех с окончанием рабочей недели) #fridaymemes

Озон Реализовать свой перечислимый тип (enum), как если бы до появления современного enum в Java 1.5.
Нужно реализовать контракт современного Java-enum: - можно легко получать любое значение энума - безопасное сравнение значений по ссылке (==) - каждое значение имеет строковое имя, совпадающее с названием значения - каждое значение имеет целочисленный идентификатор ordinal, который содержит номер значения в порядке его объявления в энуме - можно получить список всех значений энума - можно получить значение по его ordinal - можно получить значение по его имени Для примера можно взять список валют. Важно, чтобы список был потенциально расширяемым, потому что качество кода будет определять, насколько беспроблемно в будущем пройдет добавление значений в энум. class Currency { // TODO } // Currency.USD == Currency.USD true
#ozon Прислать задачу | Подписаться

Озон
Дана строка s. нужно найти первый не повторяющийся символ в строке и вернуть его индекс. Если такого символа нет, вернуть -1 Пример: input: abcbaad output: 2
#ozon Прислать задачу | Подписаться

Озон #sql
### Есть две таблицы - tab1 id 1 2 3 - tab2 id 1 1 2 2 Скажите количество строк в результирующей таблице при 1. inner join 2. left join 3. cross join
#ozon Прислать задачу | Подписаться

Газпромбанк Написать метод для разворота списка
// node1->node2->node3 ---> node3->node2->node1 class Node{ Node left; Node right; int value; }
#gazprombank Прислать задачу | Подписаться

Статистика зарплат с хабра можно посмотреть как меняются зп, выбрать разные языки и уровни (но нужно заполнить анкету и внест
Статистика зарплат с хабра можно посмотреть как меняются зп, выбрать разные языки и уровни (но нужно заполнить анкету и внести данные о своей зарплате)

Кто ищет работу, сколько у вас было техсобесов за эту неделю?
Anonymous voting

Всех с окончанием рабочей недели) #fridaymemes