import java.util.List;
public class Main {
public static boolean isListSortedAndValidGap(List<Integer> list) {
if (list == null || list.size() < 2) {
return false;
}
boolean isIncreasing = list.get(1) > list.get(0);
for (int i = 1; i < list.size(); i++) {
int gap = Math.abs(list.get(i) - list.get(i - 1));
if (gap < 1 || gap > 3) {
return false; // Gap is not within the allowed range
}
if (isIncreasing && list.get(i) <= list.get(i - 1)) {
return false; // List is not strictly increasing
}
if (!isIncreasing && list.get(i) >= list.get(i - 1)) {
return false; // List is not strictly decreasing
}
}
return true;
}
public static void main(String[] args) {
List<Integer> list1 = List.of(1, 2, 3, 5, 8, 11, 14, 15);
List<Integer> list2 = List.of(15, 14, 11, 8, 5, 3, 2, 1);
List<Integer> list3 = List.of(15, 14, 11, 8, 5, 300, 2, 1);
System.out.println(isListSortedAndValidGap(list1));
System.out.println(isListSortedAndValidGap(list2));
System.out.println(isListSortedAndValidGap(list3));
}
}
/*
run:
true
true
false
*/