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

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

Прислать задачи, реклама - @privatevoidmain
Download Telegram
Райффайзен

Сделать счетчик потокобезопасным через synchronized
class Counter {
private long x = 0;

long getX() {
return x;
}

void incX() {
x = x + 1;
}
}

#raif | Прислать задачу | Подписаться
айтеко

Что будет выведено на экран?
public class Main {
public static void main(String[] args) {
Map<Key, String> map = new HashMap<>();
Key key = new Key();
key.setKey("K1");
map.put(key, "val1");
key.setKey("K2");

System.out.println(map.get(key)); // Что выведет код?
}

static class Key {
private String key;
public void setKey(String key) {
this.key = key;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Key key1 = (Key) o;
return Objects.equals(key, key1.key);
}

@Override
public int hashCode() {
return Objects.hash(key);
}
}
}

#iteco | Прислать задачу | Подписаться
Яндекс

В базе данных есть две таблицы: "units" - подразделения компании и "employees" - сотрудники компании
units:
id // Primary Key
name // (название unit)
employees:
id // Primary Key
unit_id // Foreign Key -> units::id
salary // (зарплата)
fired // (флаг уволен)


Необходимо написать sql запрос, который вернет минимальную
и максимальную зарплату по каждому отделу среди не уволенных сотрудников. (unit_id, min_salary, max_salary)

#yandex | Прислать задачу | Подписаться
👍2
Яндекс

Написать метод, который заменяет пробелы (' ') inplace на &20 ('%', '2', '0').
* Метод должен принимать сам url (гарантируется, что размер достаточен для кодирования строки inplace) и длину исходного url'a, а возвращать новую длину строки.

#yandex | Прислать задачу | Подписаться
👍51
ВК

* <p>
* Напиши функцию, принимающую массив из положительных неупорядоченных чисел первым аргументом
* и положительное число вторым аргументом. Функция должна возвращать true, если в массиве
* есть 2 числа, которые в сумме дают 2-й аргумент.
* <p>
* Input: ([10, 15, 3, 7], 17)
* Output: true
*/

public class Template4 {




public static boolean hasPairWithSum(int[] numbers, int target) {
//Реализовать
return false;
}
}

#vk| Прислать задачу | Подписаться
4
🎉3000 подписчиков!
Всем спасибо💪

📏📏📏📏📏📏📏📏📏📏
Ставьте 🔥, если вам нравится канал и
приглашайте друзей/коллег - https://t.me/+K4vJFdalwlthYTQy

Если у вас есть задачи с собесов, скидывайте - @privatevoidmain
можно старые, можно анонимно)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍1👎11
Яндекс (#repeat)

/**
* Банкомат.
* Инициализируется набором купюр и умеет выдавать купюры для заданной суммы, либо отвечать отказом.
* При выдаче купюры списываются с баланса банкомата.
* Допустимые номиналы: 50₽, 100₽, 500₽, 1000₽, 5000₽.
* <p>
* Другие валюты и номиналы должны легко добавляться разработчиками в будущем.
* Многопоточные сценарии могут быть добавлены позже (например резервирование).
*/
class ATM {
}

#yandex | Прислать задачу | Подписаться
5
Яндекс
/*
Вы — backend-разработчик в интернет-магазине «Рога и Копыта».
Дела идут в гору и магазин решил повысить лояльность покупателей, предоставляя им персональные скидки.
К вам обратился product owner с задачей создать простую систему лояльности, которая предоставляет процентную скидку на корзину.
Размер скидки зависит от покупателя.
Аналитики уже определили, какие скидки должны быть предоставлены покупателям.


## Определения

Корзина - список покупок покупателя.

Покупка:
- id товара
- цена
- итоговая стоимость c учетом скидки

Скидка. Для покупателя может быть задан % скидки (целое число).


## Задача
Написать часть новой системы лояльности, которая:
- на вход получает id покупателя и корзину
- вычисляет и применяет скидки
- возвращает корзину, в которой учтены скидки. Скидка учитывается в стоимости покупки

*/

#yandex | Прислать задачу | Подписаться
5👍2
Сбер (#repeat)

И у нас снова стековерфлоу и стек.

1.Написать метод приводящий к stackoverflowerror
2. Написать свой класс стека с методом возвращающим максимальный элемент в стеке

#sber| Прислать задачу | Подписаться
3
This media is not supported in your browser
VIEW IN TELEGRAM
отправьте тому самому коллеге

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

# Maximum unloaded of truck

На станции по загрузке грузовиков необходимо реализовать алгоритм распределения загрузки на грузовик. Необходимо выполнить загрузку груза на грузовики и после вывести максимальную величину недогруженности.

## Signature:

private int calcTrucks(int[] weights, int trucksCount, int truckMaxCapacity)

Params:
- weights - массив грузов
- trucksCount - количество грузовиков
- truckMaxCapacity - максимальная грузоподъемность

Example:
Input - [10, 100, 20, 30, 40, 10], 4, 100
Output - 90

Input - [10, 100, 20, 30, 40], 4, 100
Output - 0


#sber| Прислать задачу | Подписаться
4
Ввел новую эмодзи для статистики -

Если задача попадалась на собесе, ставьте к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
41👍8🔥3
Тбанк

Дали задачу Summary Ranges с литкода

#tbank | Подписаться
4👍16🤯98😱2😁1
Альфа-банк

Что будет выведено на экран?

List.of(0, 1, 2, 3, 4, 5).stream()
.peek(System.out::print)
.filter(i -> i > 3)
.peek(System.out::print);


#alfabank | Подписаться
👍7🤔3
Что будет выведено на экран?
Anonymous Quiz
19%
Ошибка
12%
01234455
27%
01234545
42%
Ничего
😁2🤔1
Сбер (#repeat)

Написать метод удаляющий дубликаты букв

  public static String deduplicate(String s) {
       ....
        return "Здравствуй, Сбер!";
    }

public static void main(String[] args) {
        String input = "ЗЗддррааввссттввууй, Сссббееерр!!";
        String expected = "Здравствуй, Сбер!";
String deduplicated = deduplicate(input);
        System.out.println(deduplicated);
        System.out.println(expected.equals(deduplicated));
}


#sber| Прислать задачу | Подписаться
2😁3
Vadarod (беларусь)

/*
Посчитать кол-во повторяющихся чисел в массиве (1, 2, 3, 1, 5, 6, 1, 3 )
Результат в виде (1, 3) (2, 1) (3, 2) (5, 1) (6, 1)
*/
public class TaskTwo {

public static void main(String[] args) {

}
}


#vadarod | Прислать задачу
| Подписаться
👍5