牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列. 如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2 输入描述: 输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)
第二行包括n个整数A_i(1 ≤ A_i ≤ 10^9),表示数组A的每个数字。
输出描述: 输出一个整数表示牛牛可以将A最少划分为多少段排序子序列
输入例子: 6 1 2 3 2 2 1
输出例子: 2
AC代码:
/*
* flag = 0 开始
* flag = 1 严格递增(即不包含相等的情况)
* flag = 2 严格递减(即不包含相等的情况)
* 相等的时候我们什么也不做,最后对于我们结果加1即可
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int flag = 0;
int res = 0;
int last = in.nextInt();
for(int i = 1 ; i < N ; i++){
int now = in.nextInt();
if (flag == 0){
if ( now > last){
flag = 1;
}else if(now < last){
flag = 2;
}
}else if( flag == 1){
if ( now < last){
flag = 0;
res++;
}
}else{
if ( now > last){
flag = 0;
res++;
}
}
last = now;
}
//res++;
System.out.println(res);
in.close();
}
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有