当前位置: 首页 > wzjs >正文

网站开发类合同杭州seo托管公司推荐

网站开发类合同,杭州seo托管公司推荐,wordpress 显示文章列表,长春网站优化咨询1.题目基本信息 1.1.题目描述 给定一个大小为 m x n 的二维矩阵 grid。同时给定一个 非负整数 k。 返回满足下列条件的 grid 的子矩阵数量: 子矩阵中最大的元素 小于等于 k。 子矩阵的每一行都以 非递增 顺序排序。 矩阵的子矩阵 (x1, y1, x2, y2) 是通过选择…

1.题目基本信息

1.1.题目描述

给定一个大小为 m x n 的二维矩阵 grid。同时给定一个 非负整数 k。

返回满足下列条件的 grid 的子矩阵数量:

子矩阵中最大的元素 小于等于 k。

子矩阵的每一行都以 非递增 顺序排序。

矩阵的子矩阵 (x1, y1, x2, y2) 是通过选择所有满足 x1 <= x <= x2 且 y1 <= y <= y2 的 grid[x][y] 元素组成的矩阵。

1.2.题目地址

https://leetcode.cn/problems/find-sorted-submatrices-with-maximum-element-at-most-k/description/

2.解题方法

2.1.解题思路
单调栈

时间复杂度:O(n)

2.2.解题步骤
第一步,构建rows矩阵,rows[i][j]表示从mat[i][j]开始向左连续非严格递增且小于等于k的元素的个数(包括本身)

第二步,遍历每一列,列号记为j,再遍历每列中的每行,行号即为i

2.1.构建每一列的维护变量。total维护以(i,j)为右下角的全为1的子矩阵个数(如果该列的rows[i][j]非严格递增,则就等于前缀和);stack维护随着rows[i][j]严格递增的单调栈,存储单元形式为(rows[i][j],height*=rows矩阵中(i,j)上面连续不小于rows[i][j]的个数+1)

2.2.遍历每一列,更新total和stack,并将total更新到结果变量result中。total更新:如果rows[i][j]大于或等于单调栈栈顶的元素,则直接将rows[i][j]增加到total中,并入栈即可;如果小于,则将大的元素从栈中弹出,并从total中切除多余的子矩阵数(相当于切成一个非严格递增的rows[i][j]序列)

3.解题代码

Python代码

class Solution:def countSubmatrices(self, grid: List[List[int]], k: int) -> int:# 思路:单调栈# 参考:Leetcode 1504. 统计全 1 子矩形mat = gridm, n = len(mat), len(mat[0])# 第一步,构建rows矩阵,rows[i][j]表示从mat[i][j]开始向左连续非严格递增且小于等于l的元素的个数(包括本身)rows = [[0] * n for _ in range(m)]for i in range(m):for j in range(n):if mat[i][j] <= k:if j > 0 and mat[i][j] <= mat[i][j - 1]:rows[i][j] = rows[i][j - 1] + 1else:rows[i][j] = 1# 第二步,遍历每一列,列号记为j,再遍历每列中的每行,行号即为iresult = 0for j in range(n):# 2.1.构建每一列的维护变量。total维护以(i,j)为右下角的全为1的子矩阵个数(如果该列的rows[i][j]非严格递增,则就等于前缀和);stack维护随着rows[i][j]严格递增的单调栈,存储单元形式为(rows[i][j],height*=rows矩阵中(i,j)上面连续不小于rows[i][j]的个数+1)total = 0stack = []# 2.2.遍历每一列,更新total和stack,并将total更新到结果变量result中。total更新:如果rows[i][j]大于或等于单调栈栈顶的元素,则直接将rows[i][j]增加到total中,并入栈即可;如果小于,则将大的元素从栈中弹出,并从total中切除多余的子矩阵数(相当于切成一个非严格递增的rows[i][j]序列)for i in range(m):height = 1while stack and stack[-1][0] >= rows[i][j]:preRow, preHeight = stack.pop()height += preHeighttotal -= (preRow - rows[i][j]) * preHeighttotal += rows[i][j]stack.append([rows[i][j], height])result += totalreturn result

4.执行结果

在这里插入图片描述

http://www.dtcms.com/wzjs/358307.html

相关文章:

  • 自己创建网站的注意事项谷歌google play下载
  • 做网站费用走什么科目苏州企业网站关键词优化
  • 北京十大活动策划公司吉林seo关键词
  • 餐馆网站模板网络广告的收费模式有哪些
  • 高校网站建设需求单网页制作代码
  • 阅读的网站建设需要多少钱app推广接单网
  • 做网站品牌网络推广工具有哪些
  • 欧美建设网站永久免费建个人网站
  • 中国建设银行官网站e路护航下载东莞企业网站推广
  • 做那类网站赚钱中国万网登录入口
  • 淘宝seo什么意思seo搜索引擎优化方法
  • 医院网站页面设计网络推广的细节
  • 网站开发是打代码吗极速建站网站模板
  • 永川网站制作免费入驻的卖货平台有哪些
  • 广元网站建设价格网页搜索引擎大全
  • 做网站二级域名随便用吗百度推广登录入口下载
  • 武汉大型网站开发武汉seo优化代理
  • 成都网站建设需要多少钱2345浏览器主页网址
  • 手机网站备案密码找回的方法网络营销师课程
  • 国内视频培训网站建设怎么推广游戏叫别人玩
  • 可以做网站的公司有哪些昭通网站seo
  • 潍坊专业网站建设一站式媒体发稿平台
  • 亿唐网不做网站做品牌案例分析市场营销策划公司排名
  • 网站怎么做用qq登录接入百度指数教程
  • 徐闻住房与城乡建设局网站网站推广技术
  • 揭阳智能模板建站企业文化理念
  • 网站建设 价格今日油价92汽油
  • 骏域网站建设专家东莞域名停靠网页推广大全2023
  • 中国建设银行官方网站汇率正规网站建设公司
  • 中天建设哪里的深圳网站做优化哪家公司好