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

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

Прислать задачи, реклама - @privatevoidmain
Download Telegram
Северсталь

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

Прислать задачу | Подписаться
👍5
Альфа-банк

// Что будет выведено и с чем могут быть сложности

public final class Main {

public static void main(String[] args) {
Set<String> threads = new HashSet<>();

var integers = IntStream.range(0, 7000).boxed().collect(Collectors.toList());
integers.stream().parallel().forEach(v -> threads.add(Thread.currentThread().getName());

System.out.println(threads.size());

//System.out.println(threads);
}
}


#alfabank | Подписаться
👍3
ВК

/*
Задача:

Реализовать функцию, которая для двух списков идентификаторов вычисляет последовательность мощностей
их пересечения по префиксам.

Описание:
- Даны два списка top1 и top2 длины N.
- На шаге i берём префиксы длины i из обоих списков, рассматриваем их как множества и находим мощность
(размер) их пересечения.
- Числа в списках могут повторяться, но при вычислении пересечения учитываются только уникальные элементы.
- В результате получается список из N чисел, где каждое число — это размер пересечения соответствующих префиксов.

Ограничения:
- Гарантируется, что длины входных списков одинаковы, проверять это не требуется.

Примеры:

Вход: [1, 2, 3, 4], [3, 4, 5, 6]
Выход: [0, 0, 1, 2]

Вход: [1, 1, 1], [1, 1, 1]
Выход: [1, 1, 1]

Вход: [10, 7, 9], [1, 7, 3]
Выход: [0, 1, 1]

Вход: [3, 4, 5, 6], [1, 2, 3, 4]
Выход: [0, 0, 1, 2]

Вход: [1], [2]
Выход: [0]
*/

#vk| Подписаться
как дела с собесами?
похоже не очень - за неделю ни одной новой задачки🫡
😱8🤷‍♂11
Кто в этом году находил работу java-разработчиком, проголосуйте плиз

Откуда вы нашли работу -

❤️ — hh
— тг
👍 — linkedin
👏 — по рефералке/через знакомого
🤔 — другое/напишу в комменты
Please open Telegram to view this post
VIEW IN TELEGRAM
85👏23🤯7👍55😱4
IT-ONE

• На входе список целых чисел (может содержать null — их игнорируем).
• Нужно вернуть список k наиболее часто встречающихся чисел, отсортированных:
1. по убыванию частоты;
2. при равной частоте — по возрастанию самого числа.
• Если numbers == null или пустой список, то вернуть пустой список.
• Если k <= 0, вернуть пустой список.
• Если уникальных чисел меньше k, вернуть все.


#itone | Подписаться
👍1
Яндекс

Вы — backend-разработчик в финтех компании.
Компания предоставляет платежные услуги и должна контролировать лимиты пользователей.
Product owner просит создать систему проверки лимитов перед проведением платежей.

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

Платеж:
- сумма (в рублях)
- тип операции (только списание)
- timestamp

Лимиты пользователя:
- дневной лимит по сумме
- максимальный размер одной операции

История операций:
- список совершенных платежей пользователя

### Задача
Написать систему проверки лимитов, которая:
- на вход получает платеж и id пользователя
- проверяет все установленные лимиты
- возвращает результат: можно ли провести операцию
- если нельзя, то указывает причину (какой лимит превышен)

### Ограничения
- в рамках данной задачи считаем, что все платежи одного пользователя происходят строго последовательно.
Во время проверки лимита не может быть проведен платеж того же пользователя.

#yandex
😱7
ИнформЗащита.

/*

Даны два массива, содержащие числа от 0 до 9. Эти массивы представляют собой целые неотрицательные числа, разбитые в массив по десятичным разрядам.

Например:

[1, 5, 2] (число 152)

[4, 2, 6] (число 426)

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

[5, 7, 8] (число 578)

Числа, которые представлены массивами, могут быть любыми, в том числе очень большими (тысячи разрядов = элементов массива).

Импортировать другие классы нельзя.

*/

Подписаться
👍2😱1
ВК на проект макс

/**
* Написать метод, который заменит все пробелы в строке на "%20" inplace.
* На вход подается строка с зарезервированными под расширение символами.
* <p>
* Пример:
* Input: ['j','a','v','a',' ', 't','a','s','k', ' ', ' ']
* Output: ['j','a','v','a','%','2','0','t','a','s','k']
* <p>
* Ограничения: O(1) по памяти, O(N) по времени, менять исходную строку можно.
*/

#vk
👎20👍42😱1
Сбер

//Найти в списке чисел ближайшее значение к заданному systemId.
// Пример для List.of(3, 5, 7, 9, 12, 15) и systemId=10, должно вернуться 9
private Integer findClosestNumber(List<Integer> numbers, int systemId) {
Integer closestNumber = null;
// TODO . Реализовать логику
return closestNumber;
}


#sber| Прислать задачу | Подписаться
👍3😁1😱1
Unknown (анонимно, финтех-компания)
/**
* Задача: Сгруппировать студентов по номеру группы.
*
* Описание:
* Дано: список объектов Student, каждый из которых содержит имя и номер группы.
* Необходимо создать map в которой:
* - Ключ: номер группы.
* - Значение: список студентов, относящихся к этой группе.
*/

class Student {
String name;
Integer group;
}

List<Student> students = Arrays.asList(
new Student("Ivan", 1),
new Student("Alex", 1),
new Student("Nikita", 3),
...
);

// Пример получения студентов по группе из созданной Map
// map.get(1) = [Student("Ivan", 1), Student("Alex", 1)]
// map.get(3) = [Student("Nikita", 3)]
Map<Integer, List<Student>> map =

#unknown | Прислать задачу | Подписаться
😁4👍1😱1
СБЕР #repeat

"Дана строка состоящая из скобок [ ] ( ) { } , определить правильно ли расставлены скобки. Правильность расстановки определяется, если каждая открывающаяся скобка закрывается скобкой такого же типа и в правильном порядке. Например:"([]){}"-true, "(()]"-false"


#sber| Прислать задачу | Подписаться
👍3😱11
СБЕР

Есть товары, которые перевозятся морем на корабле. У них известны вес нетто и вес упаковки. Нужно рассчитать общий вес брутто товаров . Все классы и методы нужно реализовать самостоятельно

#sber| Прислать задачу | Подписаться
🤷‍♂4🤔3👍1👎1🤯1
Альфа-банк

Какой тип коллекции лучше использовать для Quoter?

#alfabank | Подписаться
👍2
Мойсклад #repeat

Написать программу которая приведет к StackOverFlow с минимальным количеством строк.

Подписаться
😁5
Мойсклад

Что будет выведено, если учесть, что код компилируется.

public static class Point {
private final int x, y;
private final String name;

Point(int x, int y) {
this.x = x;
this.y = y;
name = makeName();
}

protected String makeName() {
return "[" + x + "," + y + "]";
}

public final String toString() {
return name;
}
}


public static class ColorPoint extends Point {
private final String color;

ColorPoint(int x, int y, String color) {
super(x, y);
this.color = color;
}

@Override
protected String makeName() {
return super.makeName() + ":" + color;
}
}


public static void main(String[] args) {
System.out.println(new ColorPoint(4, 2, "purple"));
}

Подписаться
👍2
Как думаете кто сломал рынок? Кто главный виновник?😠

👎 — Ставка цб / экономика
🤷‍♂️— Уход зарубежных компаний
🔥— Накрутчики
—Другое/напишу в коменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👎135🤷‍♂44🔥38😁44
Мойсклад #sql

Написать SQL запрос, который выбрал бы папки с файлами*.avi или пустые папки.

CREATE TABLE folder (
id uuid PRIMARY KEY,
name text NOT NULL
);

CREATE TABLE file (
id uuid PRIMARY KEY,
name text NOT NULL,
folder_id uuid NOT NULL,
CONSTRAINT fk_file_folder_id FOREIGN KEY (folder_id) REFERENCES folder (id)
);

Подписаться
😁5
Сбер #sql

CREATE TABLE country (
id SERIAL
name VARCHAR(100)
continent VARCHAR(50)
population INT
);

CREATE TABLE gdp (
id
country_id INT
year INT
value INT
);


1. Получить континенты и суммарное число жителей на каждом
2. в которых жителей больше миллиарда
3. Получить наименование страны + ввп на душу населения
4. Какие ошибки возникают (нулл и 0)
5. В таблице стран 200 строк в gdp 180, сколько будет строк в запросе (нужно было пояснить за теорию множеств))))
6. Получить континент наименование страны и число жителе в стране. Выводим только самые большие по населению страны на континенте
7. Тоже самое только топ 3 страны

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