Кто ищет работу, сколько у вас было техсобесов за эту неделю?
Anonymous Poll
60%
Посмотреть результат
27%
0
9%
1-2
2%
3-5
1%
6-10
2%
больше 10
❤1
Реальные задачи с собеседований | Java
Альфа-банк //3. Что напишет программа? var al = Arrays.asList(1, 2, 3, 4, 5); var ll = new LinkedList<>(al); ll.add(6); al.add(6); log.info("al.equals(ll) = {}", al.equals(ll)); #alfabank | Подписаться
Альфа-банк
#alfabank | Подписаться
//4. сколько байт будет вынужден копировать процессор?
public static void main(String[] args) {
Random rand = new Random();
var list = new ArrayList<byte[]>(10);
for (int i = 0; i < 10; i++) {
ByteBuffer buffer = ByteBuffer.allocate(1 << 20);
rand.nextBytes(buffer.array());
list.add(buffer.array());
}
//превышаем capacity, сколько байт будет вынужден копировать процессор
ByteBuffer buffer = ByteBuffer.allocate(1 << 20);
rand.nextBytes(buffer.array());
list.add(buffer.array());
}
#alfabank | Подписаться
👎13🤔5👍2
Реальные задачи с собеседований | Java
Альфа-банк //4. сколько байт будет вынужден копировать процессор? public static void main(String[] args) { Random rand = new Random(); var list = new ArrayList<byte[]>(10); for (int i = 0; i < 10; i++) { ByteBuffer buffer = ByteBuffer.allocate(1…
Альфа-банк
#alfabank | Подписаться
//5. За какое время выполнится программа на машине с 1 cpu без HT?
static void sleepOneSecond() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
try(var pool = new ThreadPoolExecutor(
/*core pool size*/ 2,
/*maximum pool size*/ 10,
/*keepAliveTime value and unit*/ 30, TimeUnit.SECONDS,
new ArrayBlockingQueue<>(10))) {
var start = System.currentTimeMillis();
for (int i = 0; i < 10; i++) {
pool.execute(Pool::sleepOneSecond);
//а если вот так?
/*
var t = new Thread(Pool::sleepOneSecond);
t.setDaemon(true);
pool.execute(t);
*/
}
Runtime.getRuntime().addShutdownHook(new Thread(() ->
log.info("Time taken: " + (System.currentTimeMillis() - start))));
}
}
#alfabank | Подписаться
👍1🤔1
Реальные задачи с собеседований | Java
Кто ищет работу, сколько у вас было техсобесов за эту неделю?
тооо есть... у вас в общем было как минимум 200 собеседований за эту неделю,
но мне прислали всего 4 задачи от двух подписчиков?🫡😆
Прислать задачу - @privatevoidmain
но мне прислали всего 4 задачи от двух подписчиков?🫡😆
😁27❤3🤔2
Альфа-банк
#alfabank | Подписаться
//6. провести ревью - всё ли здесь хорошо?
class Scratch {
private static final Logger log = getLogger(Scratch.class);
private static volatile boolean ready = false;
private static final Lock rLock = new ReentrantLock();
private static final Condition readyCondition = rLock.newCondition();
private static void waitAndLog() {
try {
rLock.lock();
log.info("rLock acquired, ready: {}", ready);
if(!ready)
readyCondition.await();
log.info("ready was awaited: {}", ready);
}
catch (InterruptedException e) {
throw new RuntimeException(e);
}
finally {
rLock.unlock();
}
}
public static void main(String[] args) {
new Thread(Scratch::waitAndLog).start();
try {
rLock.lock();
ready = true;
log.info("signal about ready");
readyCondition.signal();
}
finally {
rLock.unlock();
}
}
}
#alfabank | Подписаться
❤6
Какая-то контора из Казани, криптопроект
Набрали 80 человек в зум в одно время, всем дали задание на час, и кто смог, в конце включал демку и показывал результат и проходил на след. этап.
#unknown
Прислать задачу | Подписаться
Набрали 80 человек в зум в одно время, всем дали задание на час, и кто смог, в конце включал демку и показывал результат и проходил на след. этап.
#unknown
Прислать задачу | Подписаться
😁34👎11🤯5😱1
Сбер
#sber
Прислать задачу | Подписаться
/**
* Описание задачи: Требуется реализовать REST endoint для получения списка страховых полисов, которые принадлежат заданному клиенту и являются оплаченными.
* Поскольку в системе существует очен (дальше он не дописал)
* требуется предусмотреть параметр для ограничения результата
**\
#sber
Прислать задачу | Подписаться
1🤔11😁4❤1
Альфа банк
1) написать, что будет выведено в консоль
#alfabank
Прислать задачу | Подписаться
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
#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
Реальные задачи с собеседований | Java
Кто ищет работу, сколько у вас было техсобесов за эту неделю?
Кто ищет работу, сколько у вас было техсобесов за эту неделю?
Anonymous Poll
66%
Посмотреть результат
25%
0
5%
1
2%
2
2%
3-5
0%
6-10
0%
больше 10
😢22❤1
ВТБ #sql
Таблица orders {id, client_id, amount}, таблица client {id, name} -
Как найти клиентов с самой большой суммой?
#vtb
Прислать задачу | Подписаться
Таблица orders {id, client_id, amount}, таблица client {id, name} -
Как найти клиентов с самой большой суммой?
#vtb
Прислать задачу | Подписаться
😁8🔥1
unknown company #sql
1. Написать запрос, который выводит имя, фамилию сотрудника, название отдела и его зарплату
2. Добавить колонку со средней зарплатой по отделу в котором работает сотрудник
3. Вывести по три наиболее оплачиваемых сотрудников из каждого отдела.
#unknown
Прислать задачу | Подписаться
Есть две таблицы:
-таблица department с полями
department_id,
department_name.
- таблица employee с полями
employee_id,
first_name,
last_name,
salary,
department_id
1. Написать запрос, который выводит имя, фамилию сотрудника, название отдела и его зарплату
2. Добавить колонку со средней зарплатой по отделу в котором работает сотрудник
3. Вывести по три наиболее оплачиваемых сотрудников из каждого отдела.
#unknown
Прислать задачу | Подписаться
WB #sql
#wilberries
Прислать задачу | Подписаться
таблица employee
| name | lang |
——————————-—————————-
| Nick | C# |
| Nick | SQL |
| Eva | Rust |
| Vika | SQL |
| Ivan | Java |
| Ivan | SQL |
Надо написать запрос который выберет имена сотрудников, которые знают SQL и ещё хотя бы один любой язык. Считать, что один сотрудник — одно имя.
#wilberries
Прислать задачу | Подписаться
👍5❤1
WB
Дали задачку из литкода - https://leetcode.com/problems/number-of-islands
#wilberries
Прислать задачу | Подписаться
Дали задачку из литкода - https://leetcode.com/problems/number-of-islands
#wilberries
Прислать задачу | Подписаться
WB
Необходимо перенести все элементы, равные нулю, в конец массива, сохранив порядок остальных элементов.
#wilberries
Прислать задачу | Подписаться
Необходимо перенести все элементы, равные нулю, в конец массива, сохранив порядок остальных элементов.
in: [3, 0, 4, 0, 1]
out: [3, 4, 1, 0, 0]
#wilberries
Прислать задачу | Подписаться
Реальные задачи с собеседований | Java
Кто ищет работу, сколько у вас было техсобесов за эту неделю?
Кто ищет работу, сколько у вас было техсобесов за эту неделю?
Anonymous Poll
66%
Посмотреть результат
25%
0
4%
1
2%
2
1%
3-5
0%
6-10
1%
больше 10
😁7😢7❤1
Альфа банка
Сделать ревью, найти проблемы
Прислать задачу | Подписаться
Сделать ревью, найти проблемы
@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
Необходимо написать функцию, которая проверяет, является ли заданная строка палиндромом.
Прислать задачу | Подписаться
Необходимо написать функцию, которая проверяет, является ли заданная строка палиндромом.
Прислать задачу | Подписаться
😁6❤1🔥1