Реальные задачи с собеседований | Java
4.33K subscribers
288 photos
53 videos
2 files
574 links
Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов)

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

Прислать задачи, реклама - @privatevoidmain
Download Telegram
WB #sql #repeat

Есть таблица "employee" в которой записи про сотрудников, которые знают языки программирования

Name Lang
Nick C#
Nick SQL
Eva Rust
Vika Kotlin
Vika SQL
.... .....

Надо написать запрос? который выберет имена сотрудников, которые знают SQL и ещё хотя бы один любой язык. Считать, что один сотрудник — одно имя

#wilberries
Прислать задачу | Подписаться
👍2
Дижитал Сектор Поддержка


Есть сервис A и сервис авторизации B.
Чтобы вытащить аккаунты из сервиса B по REST используется класс DataService. У него есть 3 метода:
1. dataService.getCount() - возвращает кол-во аккаунтов (int)
2. dataService.getPersons(int from, int to) - возвращает упорядоченные по индексу аккаунты (Person) из сервиса B от from до to.
3. dataService.getAllPersons() - возвращает упорядоченные по индексу все аккаунты из сервиса
(Эти методы изменять нельзя)
Известно, что некоторые аккаунты имеют дополнительную нагрузочную информацию (Person.description), из-за чего ответ сервиса блокируется прокси-сервисом gateway по ограничению для тела ответа.
Реализовать получение всех валидных Persons, максимально быстро

Прислать задачу | Подписаться
1
itone #repeat
/**
* Посчитать сумму элементов списка (более 1 млн. элементов),
* используя для этого 10 потоков
*/

public static long sum(List<Long> numbers) {
final int threads = 10;
List<List<Long>> subLists = split(numbers, threads);

// TODO: make it work!

return ???;
}

private static List<List<Long>> split(List<Long> numbers, int parts) {
int size = numbers.size();
int subListSize = (int) Math.ceil((double) size / parts);

List<List<Long>> result = new ArrayList<>(parts);
for (int i = 0; i < parts; i++) {
int fromIndex = i * subListSize;
if (fromIndex >= size) {
result.add(Collections.emptyList());
} else {
int toIndex = Math.min((i + 1) * subListSize, size);
List<Long> sublist = numbers.subList(fromIndex, toIndex);
result.add(sublist);
}
}
return result;
}

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

Необходимо написать функцию, выполняющий сортировку массива пузырьковым методом
(сеньоры на месте?)

Прислать задачу | Подписаться
😁201
Иннотех #repeat #sql #innotech

Даны две таблицы:
EMPLOYEES
-EMP_ID | NUMBER PK
-SURNAME | VARCHAR
-SALARY | NUMBER
-DEPARTMENT_ID | NUMBER FK

DEPARTMENTS
-DEPARTMENT_ID | NUMBER PK
-DEPARTMENT_NAME | VARCHAR

Получить список департаментов и среднюю з/п по департаменту, где средняя з/п по департаменту больше 5000.

Ожидаемый рез-т:
DEPARTMENT_NAME AVG_SALARY
HR 8000
IT 12000

Прислать задачу | Подписаться
1👍1
Сбер

/**
* Написать бинарное дерево Node с целочисленными значениями в узлах.
* Реализовать метод sum, принимающий на вход дерево и возвращающий сумму
* значений листьев.
*
* Пример дерева:
*
* 3
* / \
* 1 2
* /
* 4
*
* Листья: 2 и 4
* Ответ: 2 + 4 = 6
*/
class Main {
public static void main(String[] args) {
}
static class Node {
static int sum(Node node) {
return 0;
}
}
}


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

Найти симметрическую разность двух отсортированных массивов целых чисел.

a = [1, 2, 3, 4]
b = [2, 4, 5, 6]
результат = [1, 3, 5, 6]

public static int[] getSymmetricDifference(int[] a, int[] b) {
}

#tbank
Прислать задачу | Подписаться
Реальные задачи с собеседований | Java
MerlionTech Что будет выведено? public class ExceptionTask { public static void main(String[] args) { testException(); } public static void testException() { try { throw new RuntimeException("Main Exception"); …
MerlionTech

Что будет выведено?
public class LargeFileTask {
public static void main(String[] args) {
String fileName = "src/main/resources/static/EstimatedDeliveryTimeReport.xlsx";
FileInputStream bigFileInputStream = null;
try {
bigFileInputStream = new FileInputStream(filePath);
System.out.println("File opened successfully: " + fileName);
}
catch (IOException e) {
System.err.println("Error opening or reading the file: " + e.getMessage());
}
}
}

Прислать задачу | Подписаться
👍2
Райффайзен

Классические вопросы про работу транзакшнал
@Service
final class PaymentService {

public void process(Payment payment) {
// ...

pay(payment.amount, payment.account);
}

@Transactional
private void pay(Amount amount, Account account) {
//....
}
}


#raif | Прислать задачу | Подписаться
😁63👍1
какой-то банк

Найти два элемента массива, сумма которых равна заданному числу target, и вернуть их в виде массива.
import java.util.*;
import java.util.stream.*;
import java.util.function.*;

public class TargetSum {

public static void main(String[] args) {
int[] array = {3, 2, 6, 5, 4};

int targetSum = 6;

System.out.println(Arrays.toString(findTargetSum(array, targetSum)));
}


private static int[] findTargetSum(int[] numbers, int target) {

return null;
}
}

Прислать задачу | Подписаться
2
Тбанк

/*
* Найти минимальную абсолютную разность между любыми
* двумя элементами из разных массивов.
*
* arr1 = [1, 20, 11, 15]
* arr2 = [22, 16, 7]
* result = 1 (|15 - 16| = 1)
*/
int minAbsDiff(int[] arr1, int[] arr2)

#tbank
Прислать задачу | Подписаться
Тбанк

Даны 2 строки, состоящие из строчных латинских букв и символов удаления '#' (backspace).
Проверить равны ли эти строки с применением backspace.

// '#' = backspace, сравнить строки после применения backspace
// "ab#c" == "ad#c" -> true ("ac" == "ac")
// "ab##" == "c#d#" -> true ("" == "")
// "a#c" == "b" -> false ("c" != "b")
boolean backspaceCompare(String s, String t)

#tbank
Прислать задачу | Подписаться
Сейчас работодатели все чаще требуют подтвердить опыт. В связи с этим вопрос - как вы трудоустроены?
Anonymous Poll
70%
Трудовой договор
4%
ГПХ
3%
ИП
4%
Самозанятость
1%
Работаю неофициально
1%
Другое
16%
Не работаю / в поиске
8%
.
3
Тбанк

Дано изображение, каждый пиксель раскрашен каким-то цветом, обозначенным натуральным числом.
Необходимо посчитать, сколько заливок (как в Paint) придется сделать, чтобы полностью раскрасить картинку в новый цвет.
Пример: [1 1 1 2 1],
[1 2 1 2 1],
[1 1 1 3 1]
Ответ: 5


#tbank
Прислать задачу | Подписаться
💩203
Ozon

Проверить, массив отсортирован или нет.
+ спрашивают про сложность сортировок

// Проверить, отсортирован ли массив (по возрастанию или по убыванию)
// [1, 2, 3, 4] -> true
// [4, 3, 2, 1] -> true
// [1, 3, 2, 4] -> false
boolean isSorted(int[] arr)


#ozon
Прислать задачу | Подписаться
👍1
Ozon #sql
-- // user
-- id | firstname | lastname | birth
-- 1 | Ivan | Petrov | 1996-05-01
-- 2 | Anna | Petrova | 1999-06-01
-- 3 | Anna | Petrova | 1990-10-02

-- // purchase
-- sku | price | user_id | date
-- 1 | 5500 | 1 | 2021-02-15
-- 1 | 5700 | 1 | 2021-01-15
-- 2 | 4000 | 1 | 2021-02-14
-- 3 | 8000 | 2 | 2021-03-01
-- 4 | 400 | 2 | 2021-03-02

-- // ban_list
-- user_id | date_from
-- 1 | 2021-03-08

-- Нужно вывести:

-- 1. Вывести уникальные комбинации пользователя и id товара
-- для всех покупок, совершенных пользователями до того,
-- как их забанили.
-- Отсортировать сначала по имени пользователя, потом по SKU

-- TODO

-- 2. Найти пользователей, которые совершили покупок
-- на сумму больше 5000р. Вывести их имена в формате:
-- id пользователя | имя | фамилия | сумма покупок

-- TODO

#ozon
Прислать задачу | Подписаться
👍1
CallbackSchedulerTest1.java
1.1 KB
Яндекс Маркет

Даны тест и интерфейс, нужно заимплементировать шедулер, чтобы он был потокобезопасный. Экзекуторы для этого использовать нельзя.

Сразу спойлер - интервьюер видел идеальное решение через PriorityQueue, но ConcurrentHashMap вроде тоже зашел.

#yandex
Прислать задачу | Подписаться
👎5🔥21👍1