当前位置: 首页 > article >正文

73. 矩阵置零(Java)

目录

  • 题目描述:
  • 输入:
  • 输出:
  • 代码实现:

题目描述:

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。

在这里插入图片描述

输入:

matrix = [[1,1,1],[1,0,1],[1,1,1]]

输出:

[[1,0,1],[0,0,0],[1,0,1]]

代码实现:

import java.util.Arrays;
//矩阵置零
public class Main{
    public static void main(String[] args) {
        //案例
        int[][] matrix = new int[][]{{1, 1, 1}, {1, 0, 1}, {1, 1, 1}};
        setZeroes(matrix);//[[1, 0, 1],[0, 0, 0],[1, 0, 1]]
    }

    public static void setZeroes(int[][] matrix) {
        //行数
        int m = matrix.length;
        //列数
        int n = matrix[0].length;
        //临时数组
        int[][] temp = new int[m][n];
        //标记临时数组
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                if (matrix[i][j] == 0) {
                    for (int k = 0; k < m; k++) {
                        //所在一列标记
                        temp[k][j] = 1;
                    }
                    for (int k = 0; k < n; k++) {
                        //所在一行标记
                        temp[i][k] = 1;
                    }
                }
            }
        }
        //根据临时数组 置零矩阵
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                if (temp[i][j] == 1) {
                    matrix[i][j] = 0;
                }
            }
        }
        //输出:每一行
        System.out.print("[");
        for (int i = 0; i < matrix.length; i++) {
            if (i < matrix[i].length - 1) {
                System.out.print(Arrays.toString(matrix[i]) + ",");
            } else {
                //除最后一行后面 不需要接逗号
                System.out.print(Arrays.toString(matrix[i]));
            }
        }
        System.out.print("]");
    }
}


http://www.kler.cn/news/234972.html

相关文章:

  • 泽攸科技ZEM系列台扫助力环境科研创新:可见光催化抗生素降解的探索
  • lua脚本动态插入script标签 在nginx层面
  • (附源码)ssm面向过程性考核的高校课程实验系统-计算机毕设 00941
  • 单片机——FLASH(2)
  • 单页404源码
  • 【ES】--Elasticsearch的分词器深度研究
  • 大数据应用对企业的价值
  • 《二叉树》——4(Leetcode题目练习)
  • ChatGPT升级至GPT-4 Turbo:性能升级同时更为经济
  • 根据三维点坐标使用matplotlib绘制路径轨迹
  • 使用R语言fifer包进行分层采样
  • 大语言模型不适合的范围
  • 推荐一款开源的跨平台划词翻译和OCR翻译软件:Pot
  • 《巴菲特给年轻人的人生忠告》读书笔记 + 个人思考
  • 测试开发体系
  • 大数据领域的数据仓库
  • 兼容性测试
  • 【Spring框架】Spring事务的原理
  • 计算机视觉讲座PPT分享
  • 机器学习:过拟合和欠拟合的介绍与解决方法
  • Unity类银河恶魔城学习记录6-2 P66 Clone‘s Attack源代码
  • 计算机网络——06分组延时、丢失和吞吐量
  • 编程中“游戏心切”心态的影响及其对策探讨
  • 3.10 Binance_interface APP U本位合约交易-市单价平仓
  • 第三节课[LangChain]作业
  • Java 数据结构篇-实现二叉搜索树的核心方法
  • 面试经典150题——三数之和
  • 华为问界M9:领跑未来智能交通的自动驾驶黑科技
  • python+flask+django农产品供销展销电子商务系统lkw43
  • AutoSAR(基础入门篇)8.5-C/S原理进阶