IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Leetcode---二维数组问题 -> 正文阅读

[数据结构与算法]Leetcode---二维数组问题

1380. 矩阵中的幸运数 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=LA92https://leetcode-cn.com/problems/lucky-numbers-in-a-matrix/


1.?

? ?其中**matrix 表示二维数组,matrixSize代表二维数组第一维的大小,也就是可以理解成有多少行;int* matrixColSize是一个一维数组,代表每一行有多少列,即matColSize[0]代表第 0 行有matColSize[0]列,matColSize[1]代表第 1 行有matColSize[1]列,matColSize[i]代表第 i ii 行有matColSize[i]列,以此类推。


2.?

? ? 定义一个行数组minrow[matrixSize] 和一个列数组maxcol[*matrixColSize]。

3.?

?第一次遍历:存下每行的最小值到数组

for(i=0;i<matrixSize;i++)
{
    minrow[i]=max;                                  //存下每行的最小值到数组

    for(j=0;j<*matrixColSize;j++)
    {
        if(matrix[i][j]<=minrow[i])
        {
            minrow[i]=matrix[i][j];
        }
    }
}

4.?

第二次遍历:存下每列的最大值到数组

for(i=0;i<*matrixColSize;i++)                       //存下每列的最大值到数组
{
    maxcol[i]=min;                                 
    for(j=0;j<matrixSize;j++)
    {
        if(matrix[j][i]>=maxcol[i])
        {
            maxcol[i]=matrix[j][i];
        }
    }
}

5.?

?第三次遍历:满足条件的加入要返回的结果数组

*returnSize=0; 
for(i=0;i<matrixSize;i++)                           //满足条件的加入要返回的结果数组
{
    for(j=0;j<*matrixColSize;j++)
    {
        if(matrix[i][j]==minrow[i]&&matrix[i][j]==maxcol[j])
        {
          ret[*returnSize]=matrix[i][j];
          (*returnSize)++;                          //*returnSize为返回值的个数             
        }
        
    }
}return ret;

总代码


int* luckyNumbers (int** matrix, int matrixSize, int* matrixColSize, int* returnSize){
int max=INT_MAX;int min=INT_MIN;                     //INT_MAX,INT_MIN分别代表int范围内的最大最小
int minrow[matrixSize];
int maxcol[*matrixColSize];
int *ret=malloc(sizeof(int)*(*matrixColSize));              
// int *ret=malloc(sizeof(int)*matrixSize);         //使用这两种方法都可对数组ret进行内存分配
int i,j;
for(i=0;i<matrixSize;i++)
{
    minrow[i]=max;                                  //存下每行的最小值到数组

    for(j=0;j<*matrixColSize;j++)
    {
        if(matrix[i][j]<=minrow[i])
        {
            minrow[i]=matrix[i][j];
        }
    }
}


for(i=0;i<*matrixColSize;i++)                       //存下每列的最大值到数组
{
    maxcol[i]=min;                                 
    for(j=0;j<matrixSize;j++)
    {
        if(matrix[j][i]>=maxcol[i])
        {
            maxcol[i]=matrix[j][i];
        }
    }
}

*returnSize=0; 
for(i=0;i<matrixSize;i++)                           //满足条件的加入要返回的结果数组
{
    for(j=0;j<*matrixColSize;j++)
    {
        if(matrix[i][j]==minrow[i]&&matrix[i][j]==maxcol[j])
        {
          ret[*returnSize]=matrix[i][j];
          (*returnSize)++;                          //*returnSize为返回值的个数             
        }
        
    }
}return ret;


}

6.相关练习

<1>.1351. 统计有序矩阵中的负数 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=LA92https://leetcode-cn.com/problems/count-negative-numbers-in-a-sorted-matrix/

?<2>.1572. 矩阵对角线元素的和 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=LA92https://leetcode-cn.com/problems/matrix-diagonal-sum/

<3>.1672. 最富有客户的资产总量 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=LA92https://leetcode-cn.com/problems/richest-customer-wealth/?<4>.766. 托普利茨矩阵 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=LA92https://leetcode-cn.com/problems/toeplitz-matrix/

<5>.1582. 二进制矩阵中的特殊位置 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=LA92https://leetcode-cn.com/problems/special-positions-in-a-binary-matrix/?<6>.463. 岛屿的周长 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=LA92https://leetcode-cn.com/problems/island-perimeter/

?

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:52:09  更:2021-11-30 15:52:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 13:48:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码