【摘要】 排序子序列
排序子序列题目连接
做题思路
根据题意的非递增序列和非递减序列,可以分为这两个序列
题目给的例子也代表了所有的情况①arr[i] > arr[i+1] ②arr[i] < arr[i+1] ③arr[i] = arr[i+1]
但有一个情况需要注意:
当 i 遍历到结尾时,i+1越界了 这时我们可以在new数组的时候,给数…
排序子序列
做题思路
根据题意的非递增序列和非递减序列,可以分为这两个序列
题目给的例子也代表了所有的情况
①arr[i] > arr[i+1]
②arr[i] < arr[i+1]
③arr[i] = arr[i+1]
但有一个情况需要注意:
当 i 遍历到结尾时,i+1越界了
这时我们可以在new数组的时候,给数组长度+1,就完美的解决了这个问题
代码实现
import java.util.*;
public class Main{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int[] arr=new int[n+1]; for(int i=0;i<n;i++){ arr[i]=scanner.nextInt(); } int i=0; int count=0; while(i<n){ //三种情况 //①arr[i]比下一个小(非递减序列) if(arr[i]<arr[i+1]){ while(i<n && arr[i]<arr[i+1]){ i++; } //一个序列遍历完了 count++; //去下一个序列 i++; //②arr[i]等于下一个 }else if(arr[i]==arr[i+1]){ i++; //③arr[i]比下一个大(非递增序列) }else{ while(i<n&&arr[i]>arr[i+1]){ i++; } count++; i++; } } System.out.println(count); }
}
?
文章来源: blog.csdn.net,作者:别给我装斯文,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_45852612/article/details/116205878
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END