范围求和Ⅱ

 

范围求和Ⅱ

这个题目思路感觉比较简单,只需要返回最大数字的个数;这里的operation较为单纯,可以理解为在m*n矩形中画小矩形,通过以下丑图不难看出阴影部分的数字是最大的数。

QQ图片20211113100558.png

而最大数的个数则是阴影部分右下角的横纵坐标之积,接着便是考虑如何得到这个横纵坐标,注意到该横纵坐标均是操作数中最小的,因此只需要找出横纵坐标最小的数即可。具体代码如下:

int maxCount(int m,int n,int** ops,int opsSize,int* opsColSize)
{
    int i,len=m,wid=n;
    for(i=0;i<opsSize;i++)
    {
        if(ops[i][0]<len)
        {
            len=ops[i][0];
        }
        if(ops[i][1]<wid)
        {
            wid=ops[i][1];
        }
    }
    return len*wid;
}

这次是用力扣传参的方式写的函数,让我有点疑惑的地方就是最后一个参数opsColSize,不明白这是什么意思,貌似在函数中也没用到,但上面这个在力扣中是对的,这里确实有点不清楚。