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

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

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

Найти два элемента массива, сумма которых равна заданному числу 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
С 2024 года веду этот канал.

И всё это время… ни разу нормально не показал свой личный блог. Хотя именно с него всё начиналось.

Подписывайтесь, ставьте лайки, жмите на колокольчик - https://t.me/+MQKYKZ5jr4owNzU6
15
ВТБ (2025)

/**
* Что будет выведено в консоль?
*/
public static void main(String[] args) {
Map<Person, String> map = new HashMap<>();
Person person1 = new Person("Alice");
Person person2 = new Person("Alice");

map.put(person1, "Person 1");
System.out.println(map.get(person2));

}

#vtb
Прислать задачу | Подписаться
👍3🔥1
ВТБ (2025)

/**
* Необходимо получить список пользователей,
* которые состоят в группе, начинающейся на "Х"
*/

class SomeConsumer {
public List<User> consume(Stream<User> usersStream) {
//TODO
return usersStream.
}
}

@Data
class User {
private String username;
private Integer age;
private List<Group> groups;

}

@Data
class Group {
private String name;
private String description;
}

#vtb
Прислать задачу | Подписаться
👍1
ВТБ (2025)

/**
* Оцени данный код на предмет работоспособности и потенциальных проблем
*/
@Service
@Transactional
public class UserService {

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void createUser(User user) {
userRepository.save(user);
sendWelcomeEmail(user);
}

@Transactional(propagation = Propagation.REQUIRES_NEW)
private void sendWelcomeEmail(User user) {
sendwelcome(user.getId());
}
}

#vtb
Прислать задачу | Подписаться
👍2
Сбер стахование

Что будет выведено?😏
public class Main {
public static void main(String[] args) throws Exception {
throwException();
}

static void throwException() throws Exception {
try {
throw new IOException();
} catch (IOException ex) {
System.err.println("IOException");
throw new IOException();
} catch (Exception ex) {
System.err.println("Exception");
throw new IOException();
} finally {
System.err.println("Finally");
throw new Exception();
}
}
}

#sber
Прислать задачу | Подписаться
😁9👍4
Сбер стахование

//что будет выведено и почему?

public class Main {
public static void main(String[] args) throws Exception {
First first = new Second();
first.useTest();

Second second = new Second();
second.useTest();
second.callTest();
}
}

class First {
protected void test() {
System.out.println("First");
}

public void useTest() {
test();
}
}

class Second extends First {
@Override
protected void test() {
System.out.println("Second");
}

public void callTest() {
super.test();
}
}


#sber
Прислать задачу | Подписаться
👍3
Сбер стахование
//что будет выведено и почему?

public class Main {
public static void main(String[] args) throws Exception {
A a = new A();
List<String> list = new ArrayList<>();
a.f(list);
}
}

class A {
void f(Iterable<String> l) {
System.out.println("A");
}

void f(Collection<String> l) {
System.out.println("B");
}

void f(ArrayList<String> l) {
System.out.println("C");
}

void f(LinkedList<String> l) {
System.out.println("D");
}
}

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