- 题目
- 解读题目
- 解题思路
- 解题代码
- 题链接
解题思路 解题代码这里定义的排序子序列为非递增或者非递减,就是
非递增:
arr[i] >= arr[i+ 1],递增是:
arr[i] < arr[i + 1]…非递减:
arr[i] <= arr[i+ 1],递增是:
arr[i] > arr[i + 1],这一点我们要搞明白,然后就是找这个数组中有多少段这样的连续的子序列
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
//数组长度
int n = scan.nextInt();
//数组给多分一个空间
int[] array = new int[n + 1];
//没有给最后一个赋值,结果就是 0
for(int i = 0;i < n;i++){
array[i] = scan.nextInt();
}
int i = 0;
//计数器
int count = 0;
//遍历数组循环跳出条件
while(i < n){
//非递减
if(array[i] < array[i + 1]){
//i < n防止数组越界
while(i < n && array[i] <= array[i + 1]){
i++;
}
//进入下一个子序列,计数器加一
count++;
i++;
}else if(array[i] == array[i + 1]){
i++;
}else{
while(i < n && array[i] >= array[i + 1]){
i++;
}
count++;
i++;
}
}
System.out.println(count);
}
}
题链接
排序子序列链接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)