Магнит
Сделать рефакторинг
#magnit | Прислать задачу | Подписаться
Сделать рефакторинг
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Logger;
public final class Cat4 {
private static final int jumpsCount = 0;
private final DataSource dataSource;
private final String name;
public Cat4(String name, DataSource dataSource) {
this.name = name;
this.dataSource = dataSource;
}
public void doJumps(int jumpsCount) {
for (int i = 0; i < jumpsCount; i++) {
new Thread(new Runnable() {
public void run() {
doJump();
}
}).start();
}
}
public void doJump() {
jumpsCount++;
Logger.getLogger(Cat4.class.getName()).fine("Jump!");
}
public void doMeow() {
Logger.getLogger(Cat4.class.getName()).fine("Meow!");
}
public void doQuery(byte[] parameters) throws SQLException {
Connection conn = null;
Statement stmt = null;
try {
conn = dataSource.getConnection();
stmt = conn.createStatement();
stmt.execute("insert into cats (name) values(" + new String(parameters) + ")");
} finally {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
}
protected int getJumpsCount() {
int result = jumpsCount;
jumpsCount = 0;
return result;
}
public void finalize() {
jumpsCount = 0;
}
@Override
public boolean equals(Object otherCat) {
if (otherCat == this) {
return true;
}
if (!(otherCat instanceof Cat4)) {
return false;
}
Cat4 cat4 = (Cat4) otherCat;
return name.equals(cat4.name);
}
@Override
public String toString() {
try {
return "Cat4{" +
"name='" + name + '\'' +
", url=" + dataSource.getConnection().getMetaData().getURL() +
'}';
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
}
#magnit | Прислать задачу | Подписаться
СБЕР
Сделать рефакторинг кода
#sber| Прислать задачу | Подписаться
Сделать рефакторинг кода
@Transactional
public void process(String oldName, String newName) {
Long id = exec("select id from file where name='" + oldName + "'"); //выполнение запроса к БД
insert
processFile(oldName, newName); //переименование файла на диске
exec("update file set name='" + newName + "' where id = " + id);
}
#sber| Прислать задачу | Подписаться
Яндекс
*
Дан массив целых чисел, нужно найти непустой подотрезок (непрерывную подпоследовательность)
с заданной суммой target, либо сказать, что это невозможно.
findTarget([9, -6, 5, 1, 4, -2], 10) -> (2, 4)
(-1, -1) если такого нет
*
#yandex | Прислать задачу | Подписаться
*
Дан массив целых чисел, нужно найти непустой подотрезок (непрерывную подпоследовательность)
с заданной суммой target, либо сказать, что это невозможно.
findTarget([9, -6, 5, 1, 4, -2], 10) -> (2, 4)
(-1, -1) если такого нет
*
#yandex | Прислать задачу | Подписаться
👍3❤1😱1 1
Инсайрес
#sql
Задача 1
Требования:
есть 2 связанные таблицы
1) таблица User; поля Id, Name;
2) таблица UserTask; поля Id, UserId, Name
Задание:
написать SQL запрос который вернет в обратном алфавитном порядке имена всех пользователей у которых более 5 задач
Условия:
без вложенных селектов
#sql
🔥1
ВК
#vk| Подписаться
/*
* Есть список событий, у которых в наличии поля с id этого события, временем старта события и временем завершения события.
* Нужно составить алгоритм выяснения, есть ли среди этих событий конфликтующие, то есть интервалы времени которых пересекаются.
* Если время старта одного события совпадает со временем окончания другого, то такие события будем считать пересекающимися.
* Примеры:
*
* Input: [{id="1", startTime=1, endTime=5}, {id="2", startTime=4, endTime=7}]
* Output: true
*
* Input: [{id="1", startTime=1, endTime=5}, {id="2", startTime=7, endTime=9}, {id="3", startTime=4, endTime=7}]
* Output: true
*
* Input: [{id="1", startTime=1, endTime=5}, {id="2", startTime=6, endTime=7}]
* Output: false
*
* Input: []
* Output: false
*/
public class ConflictFinder {
public boolean findConflicts(List<Event> events) {
return false; // TODO
}
public static class Event {
private final String id;
private final long startTime;
private final long endTime;
public Event(String id, long startTime, long endTime) {
this.id = id;
this.startTime = startTime;
this.endTime = endTime;
}
public String getId() {
return id;
}
public long getStartTime() {
return startTime;
}
public long getEndTime() {
return endTime;
}
}
}
#vk| Подписаться
👍1😱1
Реальные задачи с собеседований | Java
Инсайрес Задача 1 Требования: есть 2 связанные таблицы 1) таблица User; поля Id, Name; 2) таблица UserTask; поля Id, UserId, Name Задание: написать SQL запрос который вернет в обратном алфавитном порядке имена всех пользователей у которых более 5 задач…
Инсайрес
Задача 2
Требования:
Создать консольное приложение со следующей функциональностью:
- предлагает ввести размер массива сообщением "введите размер массива:"
- инициализирует целочисленный массив с заданным размером случайными значениями
- выводит массив в консоль с заголовком "инициализированный массив:"
- сортирует массив от меньшего к большему методом пузырька
- выводит массив в консоль с заголовком "отсортированный массив:"
Требование к коду:
- код должен соответствовать принципу единой ответственности
Задание:
- уточнить требования если необходимо
- оценить время выполнения задания
- написать и продемонстрировать код
👍1
Реальные задачи с собеседований | Java
Очень мало задач😏
если есть старые, тоже присылайте)
KVANDO Technologies
Подписаться
Напишите функцию, которая принимает на вход словарь, содержащий ключи и значения, и возвращает список всех пар "ключ-значение". Если значение является вложенным словарем, функция должна рекурсивно извлекать ключи и значения из него.
Вход:
data = {'a': 1, 'b': {'c': 2, 'd': {'e': 3}}, 'f': 4}
Выход: [('a', 1), ('с', 2), ('e', 3), ('f', 4)]
Подписаться
🤯1
Сбер #sql #repeat ?
#sber| Прислать задачу | Подписаться
-- Две таблицы
-- Company: id, title, sector
-- Vacancy: id, id_company, name, salary
-- Написать запрос, который выведет список компаний из отрасли IT,
-- со средним доходом по вакансиям, названия которых содержат слово Java, более $1000
#sber| Прислать задачу | Подписаться
❤1👍1
Какой у вас сейчас статус на рынке труда?
Anonymous Poll
10%
Учусь, пока не ищу работу
28%
Работаю, не ищу
9%
Работаю и активно ищу
21%
Работаю и рассматриваю предложения
10%
Активно ищу (после увольнения)
12%
Активно ищу (после курсов/учёбы)
10%
Не ищу / посмотреть результаты
Альфабанк
Написать метод, проверяющий является ли а степенью b
#alfabank
Написать метод, проверяющий является ли а степенью b
// a = 9, b = 3, true
// a = 8, b = 3, false
public boolean isPow(int a, int b) {
}
#alfabank
👍5😱1
Альфа-банк
#alfabank | Подписаться
// Что будет выведено и с чем могут быть сложности
public final class Main {
public static void main(String[] args) {
Set<String> threads = new HashSet<>();
var integers = IntStream.range(0, 7000).boxed().collect(Collectors.toList());
integers.stream().parallel().forEach(v -> threads.add(Thread.currentThread().getName());
System.out.println(threads.size());
//System.out.println(threads);
}
}
#alfabank | Подписаться
👍3
ВК
#vk| Подписаться
/*
Задача:
Реализовать функцию, которая для двух списков идентификаторов вычисляет последовательность мощностей
их пересечения по префиксам.
Описание:
- Даны два списка top1 и top2 длины N.
- На шаге i берём префиксы длины i из обоих списков, рассматриваем их как множества и находим мощность
(размер) их пересечения.
- Числа в списках могут повторяться, но при вычислении пересечения учитываются только уникальные элементы.
- В результате получается список из N чисел, где каждое число — это размер пересечения соответствующих префиксов.
Ограничения:
- Гарантируется, что длины входных списков одинаковы, проверять это не требуется.
Примеры:
Вход: [1, 2, 3, 4], [3, 4, 5, 6]
Выход: [0, 0, 1, 2]
Вход: [1, 1, 1], [1, 1, 1]
Выход: [1, 1, 1]
Вход: [10, 7, 9], [1, 7, 3]
Выход: [0, 1, 1]
Вход: [3, 4, 5, 6], [1, 2, 3, 4]
Выход: [0, 0, 1, 2]
Вход: [1], [2]
Выход: [0]
*/
#vk| Подписаться
как дела с собесами?
похоже не очень - за неделю ни одной новой задачки🫡
😱8🤷♂1❤1
Кто в этом году находил работу java-разработчиком, проголосуйте плиз
Откуда вы нашли работу -
❤️ — hh
➕ — тг
👍 — linkedin
👏 — по рефералке/через знакомого
🤔 — другое/напишу в комменты
Откуда вы нашли работу -
❤️ — hh
👏 — по рефералке/через знакомого
🤔 — другое/напишу в комменты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤85👏23🤯7👍5 5😱4
IT-ONE
#itone | Подписаться
• На входе список целых чисел (может содержать null — их игнорируем).
• Нужно вернуть список k наиболее часто встречающихся чисел, отсортированных:
1. по убыванию частоты;
2. при равной частоте — по возрастанию самого числа.
• Если numbers == null или пустой список, то вернуть пустой список.
• Если k <= 0, вернуть пустой список.
• Если уникальных чисел меньше k, вернуть все.
#itone | Подписаться
👍1
Яндекс
#yandex
Вы — backend-разработчик в финтех компании.
Компания предоставляет платежные услуги и должна контролировать лимиты пользователей.
Product owner просит создать систему проверки лимитов перед проведением платежей.
### Определения
Платеж:
- сумма (в рублях)
- тип операции (только списание)
- timestamp
Лимиты пользователя:
- дневной лимит по сумме
- максимальный размер одной операции
История операций:
- список совершенных платежей пользователя
### Задача
Написать систему проверки лимитов, которая:
- на вход получает платеж и id пользователя
- проверяет все установленные лимиты
- возвращает результат: можно ли провести операцию
- если нельзя, то указывает причину (какой лимит превышен)
### Ограничения
- в рамках данной задачи считаем, что все платежи одного пользователя происходят строго последовательно.
Во время проверки лимита не может быть проведен платеж того же пользователя.
#yandex
😱7