扫描透镜

扫描透镜

http://www.nowcoder.com/questionTerminal/6a219d196df44d3abd82fbadb1a62c3f

需要看清题意。
1 一次只能清楚一个蘑菇,不管里面种了几个。
2 一个格子里面可以种无穷多个
3 第二次统计最大值需要考虑第一次的影响。

import java.util.*;
public class Main{
    public static void main(String[] args){
        int[][] path={{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1},{0,0}};//循环3x3方格,搜索常用
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            int m=sc.nextInt();
            int k=sc.nextInt();
            int[][] nums=new int[n][m];
            for(int index=0;index<k;index++){ //定义数组,nums[x][y]表示种的蘑菇数量
                int x=sc.nextInt();
                int y=sc.nextInt();
                nums[x-1][y-1]++;
            }
            int ret=0;
            int max=0;
            int x0=0;
            int y0=0;
            //第一次统计最大可清楚蘑菇数量
            for(int i=1;i<n-1;i++){
               for(int j=1;j<m-1;j++){
                   int cnt=0;
                   for(int[] d:path){
                       if(nums[i+d[0]][j+d[1]]>0) cnt++;  
                   }
                  if(cnt>max){
                      max=cnt;
                      x0=i;
                      y0=j;
                  }

               }
            }
            ret+=max;
            //在数组中减掉刚刚清楚的3x3
            for(int[] d:path){
                if(nums[x0+d[0]][y0+d[1]]>0){
                     nums[x0+d[0]][y0+d[1]]--;    
                }

            }
            //第二次统计可以清楚的最大蘑菇数
            max=0;
            x0=0;
            y0=0;
             for(int i=1;i<n-1;i++){
               for(int j=1;j<m-1;j++){
                   int cnt=0;
                   for(int[] d:path){
                       if(nums[i+d[0]][j+d[1]]>0) cnt++;

                   }
                   if(cnt>max){
                        max=cnt;
                       x0=i;
                       y0=j;
                   }

               }
            }
            //累加输出
            ret+=max;
            System.out.println(ret);


        }
    }
}
全部评论

相关推荐

05-21 15:47
门头沟学院 Java
浪漫主义的虹夏:项目有亮点吗,第一个不是纯玩具项目吗,项目亮点里类似ThreadLocal,Redis储存说难听点是花几十分钟绝大部分人都能学会,第二个轮子项目也没体现出设计和技术,想实习先沉淀,好高骛远的自嗨只会害了自己
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务