Axbit Group
Подписаться
@Service
@RequiredArgsConstructor
public class DocumentProcessService {
private final DocumentRepo repo;
@Async
@Transactional
void revokeDocument(List<Document> docs) {
List<Integer> id_list = docs.stream().map(Document::getId).collect(Collectors.toList());
List<Document> list = repo.findAllById(id_list);
Optional<Document> doc = Optional.empty();
for (int i = 0; i < list.size(); i++) {
Integer statusId = list.get(i).getStatusId();
if (statusId == 4) {
doc = Optional.of(list.get(i));
break;
}
}
if (doc.isPresent()) return;
System.out.println("Processing document id: " + doc.get().getId());
int processed = process(doc.get());
if (processed == 1) {
// Сохраняем документ, если он был обработан
repo.save(doc.get());
}
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public int process(Document doc) {
Integer result = 0;
doc.getAssistants().forEach(a -> a.setFullName("dismissed"));
// some logic:
// if document is processed returns 1, else 0
return result;
}
}
Подписаться
👍2
Axbit Group
Есть модель данных, состоящая из 2 структур.
Что в данной реализации можно сделать иначе и почему? Какие потенциальные проблемы могут быть при такой модели?
Подписаться
Есть модель данных, состоящая из 2 структур.
Что в данной реализации можно сделать иначе и почему? Какие потенциальные проблемы могут быть при такой модели?
Подписаться
Лига цифровой экономики
Какие цифры можно добавить? Все ли правильно написано?
#digitalleague | Подписаться
Какие цифры можно добавить? Все ли правильно написано?
List<? extends Number> nums = new ArrayList<>();
nums.add(1);
nums.add(2.1);
nums.add(33L);
#digitalleague | Подписаться
👍5
Лига цифровой экономики
Что будет выведено на экран?
код - online-ide.com/ITQZrHjksO
#digitalleague | Подписаться
Что будет выведено на экран?
код - online-ide.com/ITQZrHjksO
#digitalleague | Подписаться
Авито
#avito | Подписаться
Мы в Авито любим проводить соревнования, — недавно мы устроили чемпионат по шагам. И вот настало время подводить итоги!
Необходимо определить userIds участников, которые прошли наибольшее количество шагов steps за все дни, не пропустив ни одного дня соревнований.
Пример
# Пример 1
# ввод
statistics = [
[{ userId: 1, steps: 1000 }, { userId: 2, steps: 1500 }],
[{ userId: 2, steps: 1000 }]
]
# вывод
champions = { userIds: [2], steps: 2500 }
# Пример 2
statistics = [
[{ userId: 1, steps: 2000 }, { userId: 2, steps: 1500 }],
[{ userId: 2, steps: 4000 }, { userId: 1, steps: 3500 }]
]
# вывод
champions = { userIds: [1, 2], steps: 5500 }
#avito | Подписаться
🤔2
Авито
#avito | Подписаться
На Авито размещено множество товаров, каждый из которых представлен числом.
У каждого покупателя есть потребность в товаре, также выраженная числом.
Если точного товара нет, покупатель выбирает ближайший по значению товар, что вызывает неудовлетворённость, равную разнице между его потребностью и купленным товаром.
Количество каждого товара не ограничено, и один товар могут купить несколько покупателей.
Рассчитайте суммарную неудовлетворённость всех покупателей.
Нужно написать функцию, которая примет на вход два массива: массив товаров и массив потребностей покупателей, вычислит сумму неудовлетворённостей всех покупателей и вернет результат в виде числа.
Пример
# Пример
# ввод
goods = [8, 3, 5]
buyerNeeds = [5, 6]
# вывод
res = 1 # первый покупатель покупает товар 5 и его неудовлетворённость = 0, второй также покупает товар 5 и его неудовлетворённость = 6-5 = 1
#avito | Подписаться
👍2😁1
Сбер
#sber | Подписаться
Есть массив содержащий неупорядоченный числовой ряд 1 - 100 в котором не хватает одного случайного числа.
Как найти недостающее число?
*/
public static int findMissingNumber(int[] array) {
return 0;
}
#sber | Подписаться
👍5
Сбер
Сделать рефакторинг
#sber | Подписаться
Сделать рефакторинг
@RestController
@Transactional
@RequiredArgsConstructor
public class ProcessActionController {
private final PushHandler pushHandler;
private final SmsHandler smsHandler;
@PostMapping(value = "/doAction", consumes = {MediaType.ALL_VALUE})
public ResponseEntity<Object> doIt(@ResponseBody @Valid ActionRequ request) {
Action a = request.getaction();
if (a == Action.SEND_PUSH)) {
return pushHandler.process(request);
}
if (a == Action.SEND_SMS) {
return smsHandler.process(request);
}
return ResponseEntity.ok().body(UserRs.getDefaultResponce("It's default response. "));
}
}
@Data
class ActionRequ {
@NotNull
private Integer id;
@NotNull
private Action action;
//...
}
#sber | Подписаться
🔥4🤔1
Unknown company
#unknown
У Максима есть заранее подготовленный список из n подарков. Он планирует идти по порядку вдоль списка и каждый раз, когда он видит подарок, на который у него хватает денег, он обязательно моментально его покупает.
Помогите ему посчитать, какое максимальное количество денег у него может остаться после закупки подарков, если он возьмёт кредит оптимального размера (то есть такого, чтобы у него осталось как можно больше денег после покупки подарков по алгоритму).
Формат входных данных
Первая строка содержит два целых числа n и m (1≤n≤10^5 ,1≤m≤10^9 ) — длина списка подарков и размер предодобренного кредита.
Вторая строка содержит n целых чисел — цены подарков ai (1≤ai≤10^9 ).
Формат выходных данных
Выведите одно число — максимальное количество бурлей, которое могло остаться у Максима после закупки подарков.
Замечание 1
В первом примере Максим может взять в кредит 3 бурля, и тогда он купит только последний подарок. Во втором примере Максим может взять кредит на все 10 бурлей и купить все подарки. Пример 1: 3 10
5 4 1 (на выходе должно получиться 2). Пример 2: 3 10
1 2 3 (на выходе должно быть 4)
#unknown
🔥2
Сбер #sql
#sber | Подписаться
Пользователь хочет по запросу находить сумму, которую он потратил. Также хочет по запросу сумму, которая пришла ему. еще хотели чтобы можно было отследить по датам и как бы это хорошо работало в больших бд с миллионами запросов
CREATE TABLE cash.cash_history (
id uuid NOT NULL,
user_id uuid NULL,
operation_id uuid NULL,
server_time timestamptz NULL,
sum int8 NULL,
CONSTRAINT cash_history_pk PRIMARY KEY (id),
CONSTRAINT cash_history_un UNIQUE (operation_id)
)
#sber | Подписаться
Яндекс
#yandex | Подписаться
/*
* Дан массив целых чисел a_1, a_2, ..., a_n и неотрицательное число k.
* Найдите количество пар элементов массива (i, j),
* таких что i < j и |a_i - a_j| = k (модуль разности равен k).
*
* Примеры:
* {-5, 1, -3, 0, 5}, k = 6 -> 3
* {-2, 1, 3, 0, -10, 1}, k = 0 -> 1
*/
public int getPairsCountWithDiffByModule(int[] a, int k) {
// ...
}
#yandex | Подписаться
This media is not supported in your browser
VIEW IN TELEGRAM
Всех с окончанием рабочей недели)
#fridaymemes
#fridaymemes
😁30❤3
Лига цифровой экономики
Будет ли работать этот код?
#digitalleague | Подписаться
Будет ли работать этот код?
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
for (String elem : list) {
if (elem.equals("a")) {
list.remove(elem);
}
}
#digitalleague | Подписаться
ВКонтакте
#vk | Подписаться
Дан массив из нулей и единиц. Нужно определить, какой максимальный по длине
подынтервал единиц можно получить, удалив ровно один злемент массива.
Удалять один элемент из массива обязательно.
assert(maxOnes (new int[](1, 1, 0, 1))) =- 3
assert(maxOnes (new int[K1, 1, 0, 0, 1})) -- 2
#vk | Подписаться
Яндекс
#yandex | Подписаться
Дана строка. Требуется узнать является ли она палиндромом, если из неё удалить максимум 1 символ
#yandex | Подписаться
👍2
Яндекс
#yandex | Подписаться
Дан текст T и строка S. Требуется найти подстроку S' в T такую, что она совпадает с S с точностью до перестановки букв и вернуть начальный индекс подстроки.
Проверка:
"a" "a" => 0
"abcd", "aaa" => -1 ?
"abcd", "cbd" => 1
"abcdda", "bcdd" => 1
#yandex | Подписаться
👍6