华为OD机试-返回矩阵中非1的元素、个数/数值同化-BFS(JAVA 2025B卷)


java 复制代码
import java.util.*;

/**
 * @author 308413
 * @version Ver 1.0
 * @date 2025/6/18
 * @description 返回矩阵中非1的元素
 */
public class Non1ElementInMatrix {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();
        int[][] matrix = new int[N][M];
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < M; j++) {
                matrix[i][j] = scanner.nextInt();
            }
        }
        solve(matrix,N,M);
    }

    private static void solve(int[][] matrix, int n, int m) {
        LinkedList<int[]> queue = new LinkedList<>();
        int[][] directions = new int[][]{{0,1},{1,0},{0,-1},{-1,0}};
        //将矩阵中的0,0改为1,开始同化
        matrix[0][0]= 1;
        // 将起点0,0加入队列
        queue.add(new int[]{0,0});
        while(!queue.isEmpty()){
            int[] ints = queue.poll();
            for(int i =0;i<4;i++){
                int x = ints[0]+directions[i][0];
                int y = ints[1]+directions[i][1];
                if(x>=0 && x<n && y>=0 && y<m && matrix[x][y]==0){
                    matrix[x][y]=1;
                    queue.add(new int[]{x,y});
                }
            }
        }         
//        for (int i = 0; i < n; i++) {
//            for (int j = 0; j < m; j++) {
//                System.out.print(matrix[i][j]+" ");
//            }
//            System.out.println();
//        }

        int count = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if(matrix[i][j]!=1){
                    count++;
                }
            }
        }
        System.out.println(count);
    }
}
相关推荐
仍然.9 分钟前
Spring MVC(1)---介绍Spring MVC 和 请求数据
java·spring·mvc
DianSan_ERP10 分钟前
架构师视角:电商大促高并发下的订单API限流与防漏单架构演进
java·运维·网络·安全·微服务·架构·自动化
云烟成雨TD11 分钟前
Agent Scope Java 2.x 系列【6】消息层
java·人工智能·agent
云烟成雨TD12 分钟前
Spring AI Alibaba 1.x 系列【74】Agentic RAG 与混合 RAG
java·人工智能·spring
小刘|14 分钟前
Spring AI 结构化输出 + 大模型参数全解(含千问调优)
java·后端·spring
云烟成雨TD15 分钟前
Spring AI Alibaba 1.x 系列【79】图执行生命周期的可观测性基础设施
java·人工智能·spring
霸道流氓气质19 分钟前
Java 单元测试生成大量 Excel 测试数据实战指南
java·单元测试·excel
io无心24 分钟前
基于Image 2的多配件商品图生成技术实现(已开源)
java·image2
逢君学术论文AI写作27 分钟前
Java第22课:Servlet获取请求参数+POST请求+表单交互
java·servlet·ai写作
神明不懂浪漫27 分钟前
【第二章】Java中的数据类型,运算符与程序逻辑控制
java·开发语言·经验分享·笔记