数分 | 被砍掉的树-浪潮提前批笔试 Java、C++、Python

题目

某街道两侧分别种了一排树木,并按如下编号

1 3 5 7 9 ... 45 47 49... 99

2 4 6 8 10 ... 46 48 50 ... 100

输入:第一行一个整数N

第二行N个整数,表示被砍去的树的编号

输出描述:M和X,表示从第M棵树开始,共有连续的X棵大树

样例输入

5
9 15 27 35 6

样例输出

8 47

Java 用例63+

public static  void main(String[] sb)
   {
       int[] r={1};
       int n=r.length;
       int[] tree=new int[101];
       for(int i=1;i<101;i++)
       {
           tree[i]=1;
       }
       for(int i=0;i<n;i++)
       {
           tree[r[i]]=0;
       }
       int max=0;
       int start=0;
       int label;
       int x=0;
       int flag=0;
       for(int i=1;i<=99;i=i+2)
       {
           if(tree[i]==0)
           {
               start=0;
               x=i;
               continue;
           }
           start++;
           if(start>max) {
               x=i;
               max = start;
           }
       }
       start=0;
       for(int i=2;i<=100;i=i+2)
       {
           if(tree[i]==0)
           {
               start=0;
               x=i;
               continue;
           }
           start++;
           if(start>max) {
               x=i;
               max = start;
           }
       }
       if(x%2==0)
       System.out.println(max-1+" "+(x-(max-2)*2));
       else
           System.out.println(max+" "+(x-(max-1)*2));
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容