2024-12-17:判断矩阵是否满足条件。用go语言,给定一个大小为 m x n 的二维矩阵 grid,我们需要判断每个格子 grid[i][j] 是否符合以下两个条件:
1.如果下方的格子存在,则该格子必须与其下方格子相等,即 grid[i][j] 必须等于 grid[i + 1][j]。
2.如果右侧的格子存在,则该格子必须与其右侧格子不相等,即 grid[i][j] 必须不等于 grid[i][j + 1]。
如果矩阵中的所有格子都满足这两个条件,则返回 true;否则返回 false。
1 <= n, m <= 10。
0 <= grid[i][j] <= 9。
输入:grid = [[1,0,2],[1,0,2]]。
输出:true。
解释:
网格图中所有格子都符合条件。
答案2024-12-17:
chatgpt[1]
题目来自leetcode3142。
1.初始化变量:
satisfiesConditions
接受一个二维整数数组 grid
作为参数,返回一个布尔值。for
循环,分别遍历行和列。i
和 j
。2.遍历矩阵元素:
grid[i][j]
,检查下方的元素是否存在,即判断 i+1
是否小于矩阵的行数,如果小于且下方的元素与当前元素不相等,则返回 false
。j+1
是否小于矩阵的列数,如果小于且右侧的元素与当前元素相等,则返回 false
。3.返回结果:
true
,表示矩阵中的所有元素符合条件。4.时间复杂度:
5.额外空间复杂度:
grid
的空间外,没有额外的空间开销。package main
import(
"fmt"
)
func satisfiesConditions(grid [][]int)bool{
for i :=range grid {
for j :=range grid[0]{
if i+1<len(grid)&& grid[i][j]!= grid[i+1][j]{
returnfalse
}
if j+1<len(grid[0])&& grid[i][j]== grid[i][j+1]{
returnfalse
}
}
}
returntrue
}
func main(){
grid :=[][]int{{1,0,2},{1,0,2}}
fmt.Println(satisfiesConditions(grid))
}
fn satisfies_conditions(grid:&Vec<Vec<i32>>)->bool{
foriin0..grid.len(){
forjin0..grid[0].len(){
if i+1< grid.len()&& grid[i][j]!= grid[i+1][j]{
returnfalse;
}
if j+1< grid[0].len()&& grid[i][j]== grid[i][j+1]{
returnfalse;
}
}
}
true
}
fnmain(){
letgrid=vec![vec![1,0,2],vec![1,0,2]];
println!("{}",satisfies_conditions(&grid));
}
[1]
chatgpt: https://chatbotsplace.com/?rc=nnNWSCJ7EP