zoukankan      html  css  js  c++  java
  • 【编程题目】求一个矩阵中最大的二维矩阵(元素和最大)

    35.(矩阵)
    求一个矩阵中最大的二维矩阵(元素和最大).如:
    1 2 0 3 4
    2 3 4 5 1
    1 1 5 3 0
    中最大的是:
    4 5
    5 3
    要求:(1)写出算法;(2)分析时间复杂度;(3)用 C 写出关键代码

    早上灭小题!

    /*
    35.(矩阵)
    求一个矩阵中最大的二维矩阵(元素和最大).如:
    1 2 0 3 4
    2 3 4 5 1
    1 1 5 3 0
    中最大的是:
    4 5
    5 3
    要求:(1)写出算法;(2)分析时间复杂度;(3)用 C 写出关键代码
    */
    #include <stdio.h>
    
    //O(row * col)
    int sumMat(int * in, int row, int col, int *r, int * c)
    {
        int sum = 0;
        for(int i = 0; i < row - 1; i++)
        {
            int sumt = 0;
            int * r1 = in + i * col;
            int * r2 = in + (i + 1) * col;
            for(int j = 0; j < col - 1; j++)
            {
                sumt = r1[j] + r2[j] + r1[j + 1] + r2[j + 1];
                if(sumt > sum)
                {
                    *r = (i + 1);
                    *c = (j + 1);
                    sum = sumt;
                }
            }
        }
        return sum;
    }
    
    int main()
    {
        int a[15] = {1,2,0,3,4,2,3,4,5,1,1,1,5,3,0};
        int sum, r, c;
        sum = sumMat(a, 3, 5, &r, &c); //r c返回最大二维矩阵的位置
        return 0;
    }

    网上有个改进的方法http://blog.csdn.net/jtlyuan/article/details/7467545

    但时间复杂度没有明显改善。

  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/dplearning/p/3903982.html
Copyright © 2011-2022 走看看