题目描述:某街道两旁分别种植一排树木,编号如下:
1 3 5 7 9 11 13 15 17 。。。。 99
2 4 6 8 10 12 .。。100
砍了一些树,希望找到最长连续的大树
输入:一个整数N
第二行:N个被砍的树木编号:
5
9 15 27 35 6
输出
8 47 (8为起始位置 47为连续树木)
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int count=0;
int[] a=new int[n];
int[] b=new int[101];
for(int i=1;i<=100;i++) {
b[i]=1;
}
for(int i=0;i<n;i++) {
a[i]=sc.nextInt();
b[a[i]]=0;
//b[a[i]+2]=i+2;
}
StringBuffer sb1=new StringBuffer();
StringBuffer sb2=new StringBuffer();
for(int i=1;i<=100;i++) {
if(i%2!=0) {
if(b[i]==0) {
sb1.append(" ");
}
else {
if(i<10) {
sb1.append("00");
sb1.append(i);
}
else if(i<100){
sb1.append("0");
sb1.append(i);
}
else
sb1.append(i);
}
}
else {
if(b[i]==0) {
sb2.append(" ");
}
else {
if(i<10) {
sb2.append("00");
sb2.append(i);
}
else if(i<100){
sb2.append("0");
sb2.append(i);
}
else
sb2.append(i);
}
}
}
int max=0;
String start="";
String[] s1=sb1.toString().split(" ");
String[] s2=sb2.toString().split(" ");
for(int i=0;i<s1.length;i++) {
if(max<s1[i].length()) {
max=s1[i].length();
start=s1[i].substring(0, 3);
}
}
for(int i=0;i<s2.length;i++) {
if(max<s2[i].length()) {
max=s2[i].length();
start=s2[i].substring(0, 3);
}
}
System.out.println(Integer.parseInt(start)+" "+max/3);
}
}