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

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

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

Даны таблицы -
DEVICES
-id
-name
-object

EVENTS
-id
-device_id
-type

Вывести таблицу (name, count_of_events) с именами приборов и количеством событий для каждого прибора, где объект = школа.


#sql | Подписаться
50👍2
Элест

Что-то про transactional спрашивали

Подписаться
50😁17👎2👍1
Lighthouse

public static class ProfileInfo {
public UserInfo userInfo;
public CompanyInfo companyInfo;
}

public static class UserInfo {
public String name;
public String age;
}

public static class CompanyInfo {
public String id;
public String companyName;
}

// методы

//метод должен выполниться за 1 секунду
public ProfileInfo getProfileInfo(Long id) {
// TODO необходимо написать реализацию
}

private UserInfo getUserInfo(Long id) {
// вызов внешнего сервиса занимает ~ 1 секунду
}

private CompanyInfo getCompanyInfo(Long id) {
// вызов внешнего сервиса занимает ~ 1 секунду
}

Подписаться
50🔥6
Лига цифровой экономики

/*
Реализация CustomHashMap должна создаваться и применяться следующим образом:
CustomHashMap obj = new CustomHashMap();
obj.put(key,value);
int param_2 = obj.get(key);
obj.remove(key);
*/

#digitalleague | Подписаться
50🤷‍♂2👍2
СБЕР

//Дан массив чисел, в котором все числа кроме одного имеют пару (встречаются дважды). Найти число, которое встречается только один раз.

// <= [1, 0, 3, -2, 9, 9, 1, -2, 0]
// => 3

int find(int[] arr) {}

// null или пустой массив -> выбросить RuntimeException.
// Более 1 числа без пары -> выбросить RuntimeException.
// Нет числа, которое встречается единожды -> выбросить RuntimeException.
// Какое-либо из чисел встречается более 2-x раз -> выбросить RuntimeException.

#sber | Подписаться
50🔥9👍1
Lighthouse

static public class Profile {
public Long id;
public Long organizationId;
public Long groupId;
}

public Map<Long, Map<Long, List<Profile>>> groupByOrgIdAndGroupId(List<Profile> data) {
}


// Пример:

[1, 0, 1]
[2, 0, 1]
[3, 0, 2]
[4, 1, 1]
[5, 1, 2]

Result:
{
"0": {
"1" : [{1..}, {2..}],
"2" : [{3..}],
}
"1": {
"1" : [{4..}],
"2" : [{5..}]
}
}


В первой Map должен быть ключ organizationId, значение Map в которой ключ groupId а значение List<Profile>

Подписаться
50👍61😱1
It one

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

код по ссылке -
online-java.com/2roPsn3xJG

#itone | Подписаться
50🔥4👍2😱21
It one

Есть бин, в нем транзакционный метод. Я хочу посчитать, сколько раз этот метод успешно выполнится в процессе работы. Добавляю счетчик и первой операцией в методе увеличиваю счетчик. (см комментарий)
Вопрос: в случае отката транзакции count будет откачен, или останется увеличенным?

class Bean {
private int count = 0;

@Transactional
public void method() {
count++;
// что-то делаем
// получаем exception
}
}

#itone | Подписаться
50👍1😁1😱1
Национальная Страховая Информационная Система (АО «НСИС»)

/*
Манипулятор находится в исходной точке и умеет перемещаться
вперед
назад
вправо
влево

На вход манипулятора подается случайная строка, содержащая односимвольные токены-команды.
Манипулятор последовательно обрабатывает токены, выполняя соответствующие им команды. После обработки всех токенов
манипулятор останавливается.

Манипулятор поддерживает 4 варианта токенов 'U' 'D' 'R' 'L' соответствующих направлениям перемещения.
Внутри строки токены не разделены.

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

UURLLLRUDDRD...
*/

Подписаться
51🔥5
Вконтакте

/**
* Дан список интов - только положительные и 0, повторяющихся элементов в списке нет.
* Нужно преобразовать это множество в строку, сворачивая соседние по числовому ряду числа в диапазоны.
*
* Примеры:
* [1,4,5,2,3,9,8,11,0] => "0-5,8-9,11"
* [1,4,3,2] => "1-4"
* [1,4] => "1,4"
*/
public String compress(int[] array) {
return "";
}


#vk | Подписаться
1👍8
Вконтакте

Нам дана функция которая оценивает релевантность документа пользователю
interface Scorer<Document, User> {
double getScore(Document doc, User user);
}


Необходимо реализовать сервис который может сохранять документ и получать топ К (limit) документов для пользователя по скору этой функции

interface RecommenderService<Document, User> {
List<Document> getTop(User user, int limit);

void addDocument(Document document);
}

#vk | Подписаться
👍2
Cбер девайсы

Необходимо реализовать следующий класс:

public class SuperIterator implements Iterator<String> {

public SuperIterator(Object... iterators) {

....

}

}
Объекты в конструкторе могут быть либо String, либо Iterator<String>, либо Iterator<Iterator<String>> обобщить до любой вложенности итераторов

пример:

var it0 = Collections.<String>emptyList().iterator();
var it1 = Arrays.asList("1", "2", "3").iterator();
String it2 = "4";
var it3 = Arrays.asList(
Arrays.asList("5").iterator(),
Arrays.asList("6", "7").iterator()).iterator();
var it = new SuperIterator(it1, it2, it0, it3);
while (it.hasNext()) {
System.out.println(it.next());
}
}
должен вывести 1,2,3,4,5,6,7 каждое с новой строки

#sber | Подписаться | Прислать задачу
🔥3🤯3🤔1
Лига цифровой экономики

/**
* Дан массив целых чисел. Необходимо вернуть индексы тех элементов, которые в сумме дадут заданное число.
* Входные данные всегда имеют решение и оно единственное.
*/

// [0, 2, 3, 4], 7 => [2, 3]
// [0, 2, 3, 7], 7 => [0, 3]

#digitalleague | Подписаться
😁5👍4😱1
Авангард

/*
Explanation:
There is no string in strs that can be rearranged to form "bat".
The strings "nat" and "tan" are anagrams as they can be rearranged to form each other.
The strings "ate", "eat", and "tea" are anagrams as they can be rearranged to form each other.

Example 2:
Input: strs = [""]
Output: [[""]]

Example 3:
Input: strs = ["a"]
Output: [["a"]]
*/

class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
// Your solution goes here
}
}


#avangard | Подписаться
🔥4👍2
Тинькоф #sql

Вывести посты, у авторов которых больше 500 подписчиков
CREATE TABLE profile (
id BIGSERIAL PRIMARY KEY,
nickname VARCHAR,
registered_at TIMESTAMP
);

CREATE TABLE post (
id BIGSERIAL PRIMARY KEY,
owner_id BIGINT REFERENCES profile (id),
body TEXT,
inserted_at TIMESTAMP,
likes_count INT -- кол-во лайков
);

CREATE TABLE subscription_count (
profile_id BIGINT REFERENCES profile (id) UNIQUE,
followers_count INT, -- кол-во подписчиков
following_count INT -- кол-во подписок
);

#tbank | Подписаться
👍5
Реальные задачи с собеседований | Java
Админ ждет новые задачи от подписчиков: ____ Присылайте ваши задачи с собесов мне в личку - @privatevoidmain 🤝
Всем привет. куплю свежие записи собеседований. у кого есть, напишите плиз в личку t.me/privatevoidmain
(цена, компания, вилка, когда был собес, и если есть ссылку на вакансию)
Реальные задачи с собеседований | Java
Всем привет. куплю свежие записи собеседований. у кого есть, напишите плиз в личку t.me/privatevoidmain (цена, компания, вилка, когда был собес, и если есть ссылку на вакансию)
До чево довели админа? вы довольны?

ладно, шучу, записи нужны не для задач, а для другого - готовлю мощный курс по подготовке к собесам
ставьте 🔥, если вам это было бы актуально
🔥49😁5👎21
Яндекс

Реализовать функцию OneEditApart, которая проверяет, можно ли привести одну строку к другой не более чем за одно исправление (удаление, добавление или изменение символа).
OneEditApart("cat", "dog") -> false
OneEditApart("cat", "cats") -> true
OneEditApart("cat", "cut") -> true
OneEditApart("cat", "cast") -> true
OneEditApart("cat", "at") -> true
OneEditApart("cat", "acts") -> false


#yandex | Подписаться
👍5