Java LeetCode 练习

3142. 判断矩阵是否满足条件

需求:

给你一个大小为 m x n 的二维矩阵 grid 。你需要判断每一个格子 grid[i][j] 是否满足:

如果它下面的格子存在,那么它需要等于它下面的格子,也就是 grid[i][j] == grid[i + 1][j] 。

如果它右边的格子存在,那么它需要不等于它右边的格子,也就是 grid[i][j] != grid[i][j + 1] 。

如果 所有 格子都满足以上条件,那么返回 true ,否则返回 false 。

题解:

根据题意直接模拟即可。(暴力)

设矩阵 grid 的行数与列数分别为 m,n。我们遍历阵 grid,对于任意的位置判断 grid[i][j] 是否满足条件即可:

如果满足 i+1<m,此时需要满足 grid[i][j]=grid[i+1][j],如果不满足则返回 false;

如果满足 j+1<n,此时需要满足 grid[i][j] =grid[i][j+1],如果不满足则返回 false;

遍历结束之后,如果没有遇到不满足条件的情况,则返回 true。

代码:

java 复制代码
package JavaExercise20240829;


import java.util.Scanner;

public class LeetCodeExercise {
    public static void main(String[] args) {
        // 需求
        // 给你一个大小为m * n的二维矩阵grid 。你需要判断每一个格子grid[i][j]是否满足:
        //如果它下面的格子存在,那么它需要等于它下面的格子,也就是grid[i][j] == grid[i + 1][j]。
        //如果它右边的格子存在,那么它需要不等于它右边的格子,也就是grid[i][j] != grid[i][j + 1]。
        //如果所有格子都满足以上条件,那么返回true ,否则返回false。

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入二维数组的行数:");
        int m = sc.nextInt();
        System.out.println("请输入二维数组的列数:");
        int n =sc.nextInt();
        int[][] array = new int[m][n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                System.out.printf("请输入第%d行,第%d列个数字", i + 1, j + 1);
                array[i][j] = sc.nextInt();
            }
        }
        Solution solution = new Solution();
        System.out.println(solution.satisfiesConditions(array));
    }
}

class Solution {
    public boolean satisfiesConditions(int[][] grid) {
        int outLength = grid.length;
        int inLength = grid[0].length;
        for (int i = 0; i < outLength; i++){
            for (int j = 0; j < inLength; j++) {
                if (i != outLength - 1  && grid[i][j] != grid[i + 1][j]) {
                    return false;
                }
                if (j != inLength - 1 && grid[i][j] == grid[i][j + 1]) {
                    return false;
                }
            }
        }
        return true;
    }
}
相关推荐
小二·10 分钟前
Elasticsearch 面试题精编(26题|含答案|分类整理)
java·大数据·elasticsearch
BD_Marathon19 分钟前
在 Linux 环境中配置 Eclipse 以开发 Hadoop 应用
java·hadoop·eclipse
草莓熊Lotso32 分钟前
C++ 二叉搜索树(BST)完全指南:从概念原理、核心操作到底层实现
java·运维·开发语言·c++·人工智能·经验分享·c++进阶
oliveira-time41 分钟前
单例模式中的饿汉式
java·开发语言
凌波粒44 分钟前
SpringMVC基础教程(1)--MVC/DispathcerServlet
java·spring·mvc
武子康1 小时前
Java-173 Neo4j + Spring Boot 实战:从 Driver 到 Repository 的整合与踩坑
java·数据库·spring boot·后端·spring·nosql·neo4j
凌波粒1 小时前
SpringMVC基础教程(2)--Controller/RestFul风格/JSON/数据转发和重定向
java·后端·spring·json·restful
老鼠只爱大米2 小时前
Java 设计模式之适配器模式:系统集成的万能接口
java·设计模式·适配器模式·adapter·java设计模式
一叶飘零_sweeeet2 小时前
Java+EasyExcel 打造学习平台视频学习时长统计系统
java·报表·easyexcel
Go away, devil2 小时前
Java-----集合
java·开发语言