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

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

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

1) написать, что будет выведено в консоль

public class MainJava {

public static void main(String[] args) {
List.of("d2", "a2", "b1", "b3", "c")
.stream()
.map(s -> {
System.out.println("map: " + s);
return s.toUpperCase();
})
.anyMatch(s -> {
System.out.println("anyMatch: " + s);
return s.startsWith("A");
});
}
}

#alfabank
Прислать задачу | Подписаться
😁4
itone
На вход приходит список чисел, мы хотим посчитать сумму всех этих чисел,
хотим считать это быстро, из-за того, что список большой,решено считать сумму так:
мы изначально разбиваем входной список на части, используя для этого метод split
(на него время тратить не нужно, он здесь просто чтобы библиотеку никакую не тянуть).
Для чего это нам нужно: для того, чтобы каждый подсписок закинуть в отдельный поток где будет посчитана сумма и так 10 раз, когда 10 потоков отработают, мы просто собираем результаты, складываем и получаем итоговую сумму. Вот такая задачка (орфография сохранена)

/**
* Посчитать сумму элементов списка (более 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
Прислать задачу | Подписаться
2
ВТБ #sql

Таблица orders {id, client_id, amount}, таблица client {id, name} -
Как найти клиентов с самой большой суммой?

#vtb
Прислать задачу | Подписаться
😁8🔥1
unknown company #sql

Есть две таблицы:
-таблица department с полями
department_id,
department_name.

- таблица employee с полями
employee_id,
first_name,
last_name,
salary,
department_id


1. Написать запрос, который выводит имя, фамилию сотрудника, название отдела и его зарплату
2. Добавить колонку со средней зарплатой по отделу в котором работает сотрудник
3. Вывести по три наиболее оплачиваемых сотрудников из каждого отдела.

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

таблица employee

| name | lang |

——————————-—————————-

| Nick | C# |

| Nick | SQL |

| Eva | Rust |

| Vika | SQL |

| Ivan | Java |

| Ivan | SQL |


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

#wilberries
Прислать задачу | Подписаться
👍51
WB

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

in: [3, 0, 4, 0, 1]
out: [3, 4, 1, 0, 0]


#wilberries
Прислать задачу | Подписаться
Альфа банка
Сделать ревью, найти проблемы
@RequiredArgsConstructor
@RestController("/resize/v1")
public class Controller {

private final CachedPhotosService cachedPhotosService;

@GetMapping("/resized-photo/{photo-id}")
public PhootoDTO getResizedPhoto(@PathVariable("photo-id") String photoId) {
return cachedPhotosService.iconifiedPhoto(photoId);
}
}

@Component
@RequiredArgsConstructor
public class CachedPhotosService {
private static final String RESIZED_PHOTO_CACHE_NAME = "RESIZED_PHOTO_CACHE_NAME";

private final PhotoRepository photoRepository;
private final PhotoValidationService photoValidationService;
private final PhotoOperations photoOperations;

@Cacheable(cacheNames = RESIZED_PHOTO_CACHE_NAME)
public PhotoDTO resizedPhoto(String photoId, int width, int height) {
photoValidationService.validateSize(width, height);

Photo photo = photoRepository.findById(photoId);

PhotoDTO photoDto = ConversionUtils.convert(photo);
var resizedPhoto = photoOperations.resize(photoDto, width, height);

return resizedPhoto;
}

public PhotoDTO iconifiedPhoto(String photoId) {
return resizedPhoto(photoId, 100, 100);
}
}

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

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

Прислать задачу | Подписаться
😁61🔥1
Lada

Несколько вопросов с собеса -
— Что означает буква L в SOLID?
—Когда лучше использовать линкедлист?
— Расскажи про ломбоковскую аннотацию equalsandhashcode ? Плюсы и минусы
— В чем разница findById and getById в спринге?
— Что произойдёт, если в контроллере в маппере обратиться к связи сущности загруженной в сервисе(варианты)?

Собираем дизлайки и какашки, не скупитесь!
💩60👎124😱4👏1🤯1
unknown company #unknown

Небольшая контора предложила решить такую задачу на собесе

1. Метод должен принять на вход путь к локальному файлу в формате xlsx и число N
2. В файле в столбик находятся целые числа
3. Метод должен вернуть N-ное минимальное число из файла
4. Для поиска нельзя использовать библиотечные функции типа сортировки массива, нужно предложить и реализовать эффективный алгоритм (это важно)

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

Дан массив натуральных чисел, числа могут повторяться. Необходимо выбрать из них k чисел так, чтобы разность максимального и минимального из выбранных была минимальной. Вернуть эту разность.

[10,100,300,200,1000,20,30] k=3 -> 20

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

Вы — backend-разработчик в интернет-магазинеВы — backend-разработчик в интернет-магазине.
Дела идут в гору и магазин ре
😁23🤷‍♂6😱4🤔3
Яндекс #repeat (чуть изменили описание задачи, убрали название "рога и копыта") )

Вы — backend-разработчик в интернет-магазине.
Дела идут в гору и магазин решил повысить лояльность покупателей, предоставляя им персональные скидки.
К вам обратился product owner с задачей создать простую систему лояльности,
которая предоставляет процентную скидку на корзину.
Размер скидки зависит от покупателя.
Аналитики уже определили, какие скидки должны быть предоставлены покупателям.


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

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

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

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


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

#yandex
Прислать задачу | Подписаться
6
WB #repeat(была подобная задача, но не вб)
Есть матрица n на m. 1-суша, 0-вода. Нужно сосчитать кол-во островов.
Остров - это произвольный фрагмент суши, не соединенный с другими участками суши.
Связь по диагонали - не считается. Все, что за пределами матрицы - вода

Example 1:

Input: grid = [
["1", "1", "1", "1", "0"],
["1", "1", "0", "1", "0"],
["1", "1", "0", "0", "0"],
["0", "0", "0", "0", "0"]
]

Output: 1

Example 2:

Input: grid = [
["1", "1", "0", "0", "0"],
["1", "1", "0", "0", "0"],
["0", "0", "1", "0", "0"],
["0", "0", "0", "1", "1"]
]

Output: 3

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