当前位置: 首页 > news >正文

有需要网站建设的没保山网站制作

有需要网站建设的没,保山网站制作,网页页面制作公司,灌南住房和城乡建设局网站这里写目录标题问题描述解决思路实现代码问题描述 牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序…

这里写目录标题

  • 问题描述
  • 解决思路
  • 实现代码

问题描述

牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为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最少划分为多少段排序子序列


解决思路

  • 题意分析
    题中说是将一个数组分为若干段排序子序列,而排序子序列给的定义是非递增或者非递减排序的。此时,我们需要理解这个非递增和非递减是什么意思,此处举例说明:
    arr1: 1 2 3 4 5 非递减序列
    arr2: 5 4 3 2 1 非递增序列
    arr3: 1 3 3 3 4非递减序列
    arr4: 5 4 4 3 1 非递增序列
    从这四个例子可以看出,
    非递增序列的意思就是后面的数只能小于或者等于前面的数,即arr[i+1] <= arr[i]
    非递减序列的意思就是后面的数只能大于或等于前面的数,即arr[i+1] >= arr[i]
  • 大致思路
    要将一个数组划分为非递增或者非递减的子序列,就是要遍历整个数组,在遍历过程中,再逐个遍历非递增子序列和非递减子序列,每遍历完一个子序列,计数器就加一,直到整个数组遍历完毕。
  • 具体实现
    题中输入是要输入的数组长度和数组元素,输出是能划分的子序列的个数。
    首先定义一个变量count用来表示子序列的个数,接下来循环遍历数组,比较数组中的前一个数和后一个数,即比较arr[i] 和arr[i+1] ,若arr[i+1] > arr[i],则进入非递减子序列,继续循环遍历,当 arr[i+1] > arr[i]的条件不满足时,即表示当前子序列遍历结束,此时给count++,反之,同理。当arr[i+1] == arr[i]时,此时直接i++,因为两个数相等既可以是非递增序列,也可以是非递减序列,直接将其算入下一个子序列中即可。

实现代码

public class Test {public static void main(String[] args) {yaoqqiuScanner in = new Scanner(System.in);while (in.hasNextInt()){int a = in.nextInt();int[] array = new int[a+1];//多给数组一个长度,避免遍历不到最后一个元素for(int i = 0;i<a;i++){array[i] = in.nextInt();}int i = 0;int count = 0;while(i < a ) {if(array[i] < array[i+1]) {//此时进入非递减子序列(即后面的数均大于或等于前面的数)while (i < a && array[i] <= array[i+1]) {i++;}count++;i++;} else if(i < a  && array[i+1] == array[i]){//相等既可以是非递增也可以是非递减,所以可以不处理,直接加一i++;} else {//进入非递增子序列(即后面的数均小于或等于前面的数)while(i < a && array[i] >= array[i+1]){i++;}count++;i++;}}System.out.println(count);}}
}
http://www.yayakq.cn/news/281905/

相关文章:

  • 网站开发可选择的方案有南通通州区网站制作
  • 建立网站需要多少钱怎么样食品 技术支持 东莞网站建设
  • 自己网站怎么推广wordpress页面显示什么意思
  • 度假区网站建设方案深圳建网站服务
  • 丹灶网站设计注册域名免费永久
  • php网站开发实怎么看网站用的什么后台
  • 乌拉圭网站后缀网站方案书什么东西
  • 律师怎么做网站未支付网站建设挂哪个科目
  • 长沙做网站开发价格做欧洲电商看哪个网站吗
  • 物流运输 有哪些网站可以做推广微网站开发制作
  • 大同百度做网站多少钱昆山做网站好的
  • 西安企业建站在哪里做徐州seo推广公司
  • 郑州营销型网站建设公司一个网站需要哪些东西
  • 培训网站设计n多国外免费空间
  • 网站免费源代码浙江企业响应式网站建设
  • 象58同城网站建设需要多少钱自建站平台
  • 网站建设技术是干嘛的做玩具什么 网站比较好
  • wordpress怎么生成网站地图门户网站的概念
  • 微信做网站支付工具专业做网文的网站
  • 网站建设项目方案ppt网站放音乐代码
  • 自己做的网站如何加视频网上做推广有没有好一点的平台
  • 有做网站的吗 优帮云wordpress js验证码插件
  • 含关键词的网站建设网页设计基础图片
  • 做网站的步骤珞珈学子网站建设
  • 百度站长 添加网站网站备案有什么作用
  • 卡尺 东莞网站建设迅当网络深圳外贸网站建设
  • 网站更新seo国外教做美食网站
  • wordpress整站源码带数据软件开发外包有前途吗
  • 织梦个人博客网站源码沈阳京科男科医院
  • 广东省东莞市建设培训中心网站沈阳建设网站建站