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

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

Прислать задачи, реклама - @privatevoidmain
Download Telegram
IT ONE
Найти первый не повторяющийся элемент в массиве целых чисел
   public static void main(String[] args) {
int[] arr = {9, 4, 9, 6, 7, 4, 5};
}


#repeat
#itone | Прислать задачу | Подписаться
👍3
IT ONE

-- Есть две таблицы:
-- Persons со списком работников
-- id | name
-- ------------
-- 1 | Petya
-- 2 | Vasya
-- 3 | Kolya

-- Payments с зарплатными начислениями ежемесячно.
-- id | person_id | amount
-- -----------------------------
-- 1 | 1 | 10
-- 2 | 1 | 20
-- 3 | 3 | 15

-- Связь между таблицами один ко многим, причем у сотрудника может быть несколько выплат
-- либо не быть ни одной выплаты, если он только пришел в компанию

-- 1. выбрать всех сотрудников вместе с их зарплатными начислениями.
-- 2. выбрать сотрудников у которых общий размер начислений превышает 25

#sql
#itone | Прислать задачу | Подписаться
1👍3
IT ONE #sql

Вывести название группы и суммарную зарплату групп, где зарплата больше 2000 у пользователей с айди > 100
create table users (
user_id serial not null,
user_name varchar(50) not null,
user_group varchar(50) not null,
salary int8 default 0 not null,
constraint pk_users primary key (user_id)
);

#itone |Подписаться
1👍9
IT ONE (#repeat)

public class First {
//Найти в строке первую неповторяющуюся букву
//Например:
//"cba" => c
//"abc" => a
//"abca" => b
public static void main(String[] args) {
checkResult("cba", 'c');
checkResult("abc", 'a');
checkResult("abca", 'b');
checkResult("abcab", 'c');
checkResult("abcabcd", 'd');
}

public static Character getFirstUnique(String st) {

}


private static void checkResult(String input, Character expectedResult) {
Character actualCharacter = getFirstUnique(input);
if (Objects.equals(expectedResult, actualCharacter)) {
System.out.println(actualCharacter + " OK");
} else {
System.out.println("Check failed! Input '" + input + "'; Result'" + actualCharacter + "'; Expected '" + expectedResult + "'!");
}
}
}

#itone | Подписаться
1👍6
Никак не могу понять, что тут требуется? или я не успел проснуться, или что😄

IT ONE

Метод работает не всегда корректно.
Как его можно отрефакторить или переписать, и как проверить, что ничего не сломалось?
В будущем, возможно, нужно будет сделать похожий метод, который найдет все дубликаты, их индексы и количество.
Метод должен будет работать не только с int, но и с объектами.

Метод возвращает индекс элемента в последовательности чисел, который соответствует дубликату.

public int findDuplicateIndex(int... numbers) {
int[] countArray = new int[numbers.length];
for (int i = 0; i < numbers.length; i++) {
int current = numbers[i];
if (countArray[current] > 0) {
return i;
} else {
countArray[current] += 1;
}
}
throw new RuntimeException("Duplicate not found!");
}

#itone | Подписаться
1👍5
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
IT ONE (#repeat)
public class Main {

//Найти первый неповторяющийся элемент в массиве целых чисел
public static void main(String[] args) {
int[] arr = {9, 4, 9, 6, 7, 4, 5};
int[] arr2 = {9, 4, 9, 6, 6, 4, 5};

System.out.println(nonRepeatable(arr)); //6
System.out.println(nonRepeatable(arr2)); // 5

}

#itone
It one

//Даны два бина. При выполнении третьей итерации в методе m1 возникло исключение. Сколько записей будет в БД?

public class BeanA() {
private BeanB b;

@Transactional
public void m1(List<Integer> list) {
for (Integer i : list) {
b.m2(i);
}
}
}


public class BeanB() {
@Transactional
public void m2(Integer i) {
// Добавляем запись в таблицу
}
}

#itone | Подписаться
1👍1
IT-ONE

• На входе список целых чисел (может содержать null — их игнорируем).
• Нужно вернуть список k наиболее часто встречающихся чисел, отсортированных:
1. по убыванию частоты;
2. при равной частоте — по возрастанию самого числа.
• Если numbers == null или пустой список, то вернуть пустой список.
• Если k <= 0, вернуть пустой список.
• Если уникальных чисел меньше k, вернуть все.


#itone | Подписаться
👍1
IT ONE (классика #repeat)

class Program
{
public static void main(String args[])
{
// todo: вернуть первый неповторящийся элемент и вывести ответ
int[] arr = {9, 4, 9, 6, 7, 4, 5};
System.out.println(firstUnique(arr));

}
}

#itone
Прислать задачу | Подписаться
😁91🤔1
IT ONE

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

class Program {

public static void main(String[] args) {

try {
try {
throw new Exception("a");
} finally {
if (true) {
throw new IOException("b");
}
System.out.println("c");

}
} catch (IOException e) {
System.out.println(e.getMessage());

} catch (Exception e) {
System.out.println("d");
System.out.println(e.getMessage());
}

}
}

#itone
Прислать задачу | Подписаться
3👏1
IT ONE #repeat

Стандартные вопросы по работе транзакшнал -
public class BeanA() {
private BeanB b;
}

@Transactional
public void m1(List list) {
for (Integer i : list) {
b.m2();
}
}

public class BeanB() {
@Transactional
public void m2(Integer i) {
// Добавляем запись в таблицу
}
}

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