ТЗ Java
Пожалуйста, при прохождении тестирования не спешите, внимательно читайте тексты заданий и вопросов.
Ваше решение не обязательно должно быть полностью рабочим, главное показать код для последующего обсуждения. Поэтому мы ожидаем от вас хоть какой-то код по каждому из заданий.
Задачи по Java
1) Реализация метода
/**
* @param a - массив чисел, длина массива может быть больше 10млн.
* @return массив чисел, в которых нету дубликатов. Порядок чисел в оригинальном массиве должен быть сохранён.
* Из дубликатов нужно оставлять последний элемент, например, для {2,1,4,2,3} правильное решение - {1,4,2,3}, а не {2,1,4,3}.
*
* В случае, если во входном массиве есть элемент меньше 0, то нужно выдавать ошибку.
* Например, для {2,3,-1,5} обработка должна закончиться ошибкой.
*/
public static double[] task(double[] a) {
// ...
}
2) Разница между max/min DELIVERY по валюте
Посчитайте для каждой валюты разницу между самым большим и самым маленьким заказом типа DELIVERY. Верните результат вычисления для каждой валюты. Валюты в результате должны находиться в порядке возрастания этой разницы.
class OrderService {
enum Type {DELIVERY, PICKUP}
static class OrderData {
final Type type;
final String currency;
final Long amount;
OrderData(@NotNull Type type,
@NotNull String currency,
@NotNull Long amount) {
this.type = type;
this.currency = currency;
this.amount = amount;
}
String getCurrency() {
return currency;
}
Long getAmount() {
return amount;
}
Type getType() {
return type;
}
}
}
/**
* Возвращает map вида [валюта (в порядке возрастания разницы) - разница между самым большим и маленьким заказом
* типа DELIVERY для валюты].
*
* Если по какой-то валюте только один заказ, то он является и самым большим и самым маленьким и разница равна 0.
*
* Пример входных данных:
* [
* Order(DELIVERY, "EUR", 2000),
* Order(DELIVERY, "USD", 15),
* Order(DELIVERY, "RUB", 200),
* Order(PICKUP, "RUB", 1250),
* Order(DELIVERY, "USD", 35),
* Order(PICKUP, "USD", 55),
* Order(DELIVERY, "RUB", 100)
* ]
*
* Ожидаемый результат:
* ["EUR" -> 0.0, "USD" -> 20.0, "RUB" -> 100.0]
*/
Map<String, Double> getMaxMinusMinDeliveryMapByCurrency(List<OrderData> orderDataList) {
// ...
}
Задачи по SQL
Даны две таблицы:
Table1
| ID | NAME |
|---|---|
| 1 | Name1 |
| 1 | Name1 |
| 2 | Name2 |
| 2 | Name2 |
| 4 | Name3 |
Table2
| ID | NAME |
|---|---|
| 2 | Name2 |
| 2 | Name3 |
| 3 | Name3 |
| 4 | Name4 |
| 4 | Name4 |
1) Записи из Table1, которых нет в Table2 (включая повторы)
Постройте запрос, который выводит из Table1 только те записи (строки), которых нет в таблице Table2, включая повторы (в решении нельзя использовать except, minus и intersect).
2) Записи из Table1, которые есть в Table2 (без повторов)
Постройте запрос, который выводит только те записи (строки) Table1, которые есть в Table2, исключая повторы (в решении нельзя использовать except, minus и intersect).