예를 들어
A → D 로 가는 최단 경로가 필요한 데
- 일단 A → B → D 가 최단이라는 가정하
- B → D의 경로도 반드시 최단 경로여야함.
static int[] UP;
static int[] DOWN;
if (N == 1) {
System.out.println(1);
return;
}
for (int i = 1; i < arr.size(); i++) {
if (arr.get(i) >= arr.get(i - 1)) {
UP[i] = UP[i - 1] + 1;
} else {
UP[i] = 1;
}
if (arr.get(i - 1) >= arr.get(i)) {
DOWN[i] = DOWN[i - 1] + 1;
} else {
DOWN[i] = 1;
}
maxLen = Math.max(Math.max(UP[i], DOWN[i]), maxLen);
}