题目:排序子序列
方法一
为了对数组内的所有数据都进行统一处理,定义数组 A 的长度时应该比接收的给定长度值大 1,因为由题干可知,所有的数据都比0大且0在第n个位置,所以不会对结果有影响。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int n = sc.nextInt();
int[] arr = new int[n + 1];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
int ret = func(arr, n);
System.out.println(ret);
}
}
public static int func(int[] arr, int n) {
int ret = 0;
int i = 0;
while (i < n) {
if (arr[i] < arr[i + 1]) {
while (i < n && arr[i] < arr[i + 1]) {
i++;
}
ret++;
} else if (arr[i] == arr[i + 1]) {
} else {
while (i < n && arr[i] > arr[i + 1]) {
i++;
}
ret++;
}
i++;
}
return ret;
}
}