7-2 java高级 22_05找出有相同数字的最长子序列 (20 分)

7-2 java高级 22_05找出有相同数字的最长子序列 (20 分)
编写一个时间复杂度为O(n)的程序,提示用户输入一个以0结束的整数序列,找出有相同数字的最长子序列

输入格式:
用户输入一个以0结束的整数序列。

输出格式:
找出有相同数字的最长子序列。

输入样例:
在这里给出一组输入。例如:

2 4 4 8 8 8 8 2 4 4 0
结尾无空行
输出样例:
在这里给出相应的输出。例如:

index 3 with 4 values of 8
结尾无空行


import java.util.Scanner;
//文档:2 4 4 8 8 8 8 2 4 4 0.note
//		链接:http://note.youdao.com/noteshare?id=991b679b42f6a67e0bd0dfe96ad4199e&sub=C96104BA6AA14766B82A2598BAE1D05F
 class SameNumLongest {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
//		String string=scanner.nextLine();
		int nowNum = 0;
		int nowNumLen = 0;
		int maxLenNum = 0;
		int maxLen = 0;
		int idx=0;
		int nowNumIdx=0;
		int i=0;
		while (scanner.hasNextInt()) {
			int num = scanner.nextInt();
			if (num == 0)
				break;
			if (num == nowNum) {
				nowNumLen++;
			} else {
				nowNum=num;
				nowNumLen = 1;
				nowNumIdx=i;
			}
			if (nowNumLen > maxLen) {
				maxLenNum = nowNum;
				maxLen = nowNumLen;
				idx=nowNumIdx;
			}
			i++;
		}
//		System.out.println("maxLenNum");
//		System.out.println(maxLenNum);
//		System.out.println("maxLen");
//		System.out.println(maxLen);

//		index 3 with 4 values8 8 2 4 4 0
		maxLenNum
		8
		maxLen
		4
		index 3 with 8 values of 4 of 8
//		System.out.println(String.format("index %d with %d values of %d",idx,maxLenNum,maxLen ));
		System.out.println(String.format("index %d with %d values of %d",idx,maxLen,maxLenNum ));
//		2 4 4 8 8
	}
}

class Main{
	public static void main(String[] args) {
		SameNumLongest.main(args);
	}
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值