最长连续递增子序列

文章目录

题目

在这里插入图片描述

我的代码

package 查找与排序上.线上讲解;

public class 最长连续递增子序列 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//int[] a = {1,9,2,5,7,3,4,6,8,0};
		int[] a = {1,9,2,5,7,3,4,6,6,7,8,19};
		int res = maxLen(a);
		System.out.println(res);
	}

	private static int maxLen(int[] a) {
		int begin = 0;
		int end = 1;
		int len = 1;
		int x =0,y=0;
		while(end < a.length-1){
			begin = end;
			//end<=a.length-1可以访问到数组最后一个;a[end]>=a[end-1],如果出现3,6,6,7类似这样的序列,也可以认为递增序列.
			while (end <= a.length - 1 && ((begin == end) || (a[end] >= a[end - 1]))) {
				end++;
			}
			if (len < end - begin ) {
				len = end - begin;
				x = begin;
				y = end-1;
			}
			//结算上一轮,开始下一轮
			begin = end;
		}
		for (int i = x; i <= y; i++) {
			System.out.print(a[i] + " ");
		}
		System.out.println();
		return len;
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值