题解 | #最小面积子矩阵# 前缀和矩阵

最小面积子矩阵

https://www.nowcoder.com/practice/8ef506fbab2742809564e1a288358554

#include <iostream>
using namespace std;
#define MAX 101
#define INF 0x7fffffff
int sumOfMat(int i, int j, int width, int length, int(&arr)[MAX][MAX]){
// 统计从(i,j)为首的矩阵的所有元素和
    int sum;
    sum=arr[i+width-1][j+length-1]-arr[i-1][j+length-1]-arr[i+width-1][j-1]+arr[i-1][j-1];
    return sum;
}
int minMatArea(int n, int m, int k, int(&arr)[MAX][MAX]) { // 使用引用传递二维数组
    int minArea = INF; 
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            for(int width=1;width<=n-i+1;width++){ // 特别注意 width、length上界
                for(int length=1;length<=m-j+1;length++){
                    int curSum=sumOfMat(i, j, width, length, arr);                 
                    if(curSum>=k && minArea>=width*length){
                        // 更新条件:1、sum >= k 2、area最小
                        minArea=width*length;
                    }
                }
            }
        }
    }
    if(minArea==INF) minArea=-1;
    return minArea;
}
int main() {
    int arr[MAX][MAX]={0}; // 首行列全部初始化为0
    int n, m, k;
    cin >> n >> m >> k;
    for (int i = 1; i <= n; i++) { // 读取数据,并计算前缀和矩阵
        for (int j = 1; j <= m; j++) {
            cin >> arr[i][j];
            arr[i][j]+=arr[i-1][j]+arr[i][j-1]-arr[i-1][j-1];
        }
    }
    cout << minMatArea(n, m, k, arr) << endl;
    return 0;
}

全部评论

相关推荐

2025-12-22 15:04
江西农业大学 Web前端
SaviorSu:直接说下学期可以请假,一般情况学校允许我26届,大三就直接去实习了
点赞 评论 收藏
分享
02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
AI求职实录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务