【Java】P1420 最长连号——(OJ:洛谷)

【Java】P1420 最长连号——(OJ:洛谷)

题目

题目来源:洛谷OJ

题目链接:https://www.luogu.com.cn/problem/P1420

题目描述

输入 n个正整数,要求输出最长的连号的长度。

连号指从小到大连续自然数。

输入格式

第一行,一个整数 n。

第二行,n 个整数 ai,之间用空格隔开。

输出格式

一个数,最长连号的个数。

输入输出样例

输入 #1复制

10
3 5 6 2 3 4 5 6 8 9         

输出 #1复制

5

说明/提示

数据规模与约定

对于 100% 的数据,保证1≤n≤104​,1≤ai≤109

思路

  1. 因为输入的数据非常大,所以不能采用数组的方式输入。
  2. 首先根据输入的n,来一个for循环,在输入下一个数的同时判断这个数和是否是上一个的数的下一位,在累计个数

Java源代码

package 入门3循环结构;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;

/**
 *@Title P1420最长连号.java
 *@description TODO
 *@time 2020年7月7日
 *@author Baisu
 *@version 1.0
 */
public class P1420最长连号 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StreamTokenizer st = new StreamTokenizer(br);
		PrintWriter pr = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
		st.nextToken();
		int n = (int)st.nval;
		int t [] = new int [2];
		st.nextToken();
		t[0] = (int)st.nval;
		int s = 1;
		int max = 0;
		for(int i=1; i<n; i++) {
			st.nextToken();
			t[1] = (int)st.nval;
			if(t[0]==t[1]-1) {
				s++;
			}
			else {
				if(s>max) {
					max = s;
					s = 1;
				}
			}
			t[0] = t[1];
		}
		pr.println(max);
		pr.flush();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值