栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

7-2 java高级 22

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

7-2 java高级 22

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

输入格式:

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

输出格式:

找出有相同数字的最长子序列。

输入样例:

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

2 4 4 8 8 8 8 2 4 4 0
输出样例:

在这里给出相应的输出。例如:

index 3 with 4 values of 8
题目分析

这道题其实蛮简单的,因为他要求的是最大连续相同子串,因此只需要逐个遍历下去,判断当前数字和前一个数字是否相同就可以了,每次不相同的时候,判断一下当前字串长度和目前的最大字串,如果当前大就替换,这样就over了

题解
// package lab04;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input=new Scanner(System.in);
		int maxlen=0;
		int maxindex=0;
		int maxnum=0;
		int prelen=0;
		int preindex=0;
		int prenum=0;
		int index=0;
		while (1+1==2) {
			int x=input.nextInt();
			if (x==0) {
				if (prelen>maxlen) {
					maxindex=preindex;
					maxlen=prelen;
					maxnum=prenum;
				}
				break;
			}
			if (x==prenum) {
				prelen++;
			}else {
				if (prelen>maxlen) {
					maxindex=preindex;
					maxlen=prelen;
					maxnum=prenum;
				}
				preindex=index;
				prelen=1;
				prenum=x;
			}
			index++;
		}
		System.out.print("index "+maxindex+" with "+maxlen+" values of "+maxnum);
	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349469.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号