Задача заключается в следующем:
Необходимо реализовать функцию, которая из элементов переданного списка целых чисел составит новый список, состоящий из всех элементов переданного списка за исключением локальных минимумов. Локальный минимум - элемент, который строго меньше соседей слева и справа (для элемента[0] - справа, для последнего - слева). Обращаться к элементам по индексу запрещено, перебирать элементы с помощью цикла for (int value: list) {..}
Проблема следующая: Если в списке имеются два одинаковых элемента, причем один из них является локальным минимум, то в новый список не добавляются оба (хотя должен не добавиться только тот, который является локальным минимумом).
Ниже прикрепляю фрагмент кода.
static List<Integer> list(List<Integer> list) {
List<Integer> newList = new ArrayList<>();
for (Integer value : list) {
if (!isLocalMin(list, value)) {
newList.add(value);
}
}
return newList;
}
static boolean isLocalMin(List<Integer> list, int number) {
Integer bufferNum = 0;
Integer bufferLeft = 0;
for (Integer value : list) {
if (value == number) {
bufferLeft = bufferNum;
bufferNum = number;
} else {
if (bufferLeft > bufferNum && value > bufferNum) {
return true;
}
bufferNum = value;
bufferLeft = bufferNum;
}
}
return false;
}
Это делается одним циклом:
function f(arr) {
var res = []
var l, c, r
var first = true
for (r of arr) {
if (first) {
l = Infinity
c = r
first = false
} else {
if (!(c < l && c < r)) {
res.push(c)
}
l = c
c = r
}
}
if (c >= l) {
res.push(c)
}
return res
}
var a = Array.from({length:10}, () => Math.random()*100 | 0)
console.log(a.join(", ") + "\n" + f(a).join(", "))
Виртуальный выделенный сервер (VDS) становится отличным выбором
С таким я столкнулся еще когда впервые узнал про DAO-слой, где один парень настойчиво рекомендовал не делать конкретную реализацию, а программировать...
Попробовал найти и вывести RGB данные одной картинки (ну конечно программа должна работать для любых картинок) в один соответствующий txt файл
Столкнулась с проблемой что нельзя одновременно у одного request вызвать и getReader(), и getInputStream(), в документации написано что нельзя и на практике...