给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold。

请你返回元素总和小于或等于阈值的正方形区域的最大边长;如果没有这样的正方形区域,则返回 0 。
示例 2:

输入:mat = [[2,2,2,2,2],[2,2,2,2,2],[2,2,2,2,2],[2,2,2,2,2],[2,2,2,2,2]], threshold = 1
输出:0

代码

class Solution {public int getMaxSideLength(int[][] mat,int x1,int y1,int x2,int y2) {return mat[x2][y2]-mat[x1-1][y2]-mat[x2][y1-1]+mat[x1-1][y1-1];//获取正方形的和}public int maxSideLength(int[][] mat, int threshold) {int n=mat.length,m=mat[0].length;int[][] add=new int[n+1][m+1];for(int i=1;i<=n;i++)//构建前缀和for(int j=1;j<=m;j++){add[i][j]=add[i][j-1]+add[i-1][j]-add[i-1][j-1]+mat[i-1][j-1];}int l=1,r= Math.min(n,m),res=0;while (l<=r)//二分法查找最大边长{boolean find=false;int mid=(r-l)/2+l;for(int i=1;i<=n-mid+1;i++)//查找满足的正方形for(int j=1;j<=m-mid+1;j++)if(getMaxSideLength(add,i,j,i+mid-1,j+mid-1)<=threshold){find=true;}if(find)//找到了满足的边长,尝试更大的{res=mid;l=mid+1;}else r=mid-1;}return res;}
}

leetcode1292. 元素和小于等于阈值的正方形的最大边长(二分法+前缀和)相关推荐

  1. LeetCode(1292):元素和小于等于阈值的正方形的最大边长 Maximum Side Length of a Square(Java)

    2020.12.24 LeetCode 从零单刷个人笔记整理(持续更新) github:https://github.com/ChopinXBP/LeetCode-Babel 原地动态规划 + 前缀和 ...

  2. 1292. 元素和小于等于阈值的正方形的最大边长-前缀和算法

    1292. 元素和小于等于阈值的正方形的最大边长-前缀和算法 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold. 请你返回元素总和小于或等于阈值的正方形区域的最大边长:如 ...

  3. 元素和小于等于阈值的正方形的最大边长(来源:力扣(LeetCode))

    元素和小于等于阈值的正方形的最大边长(来源:力扣(LeetCode)) 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold.请你返回元素总和小于或等于阈值的正方形区域的最大 ...

  4. LeetCode 1292. 元素和小于等于阈值的正方形的最大边长(DP)

    1. 题目 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold. 请你返回元素总和小于或等于阈值的正方形区域的最大边长: 如果没有这样的正方形区域,则返回 0 . 示例 1 ...

  5. Leetcode-元素和小于等于阈值的正方形的最大边长(python)

    题目 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold. 请你返回元素总和小于或等于阈值的正方形区域的最大边长:如果没有这样的正方形区域,则返回 0 . 示例 1: 输入 ...

  6. 已知正方形面积求边长c语言,正方形知道面积怎么求边长.

    2019-10-09阅读(206) 长方形的周长=(长+宽)×2正方形的周长=边长×4长方形的面积=长×宽正方形的面积=边长×边长三角形的面积=底×高÷2平行四边形的面积=底×高梯形的面积=(上底+下 ...

  7. java xsi type_无法使用BPMN 2.0 XSD验证XML与元素类型“conditionExpression”关联的属性“xsi:type”的前缀“xsi”未绑定...

    嗨我在我的应用程序中使用Activiti框架来管理工作流.我为演示目的创建了一个非常基本的流程定义,它工作得非常好. 但我得到了上述错误,当我在过程定义中包含条件表达式获取上述异常. 以下是流程定义无 ...

  8. 如何学好C语言--你的学渣朋友告诉你

    光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...

  9. LeetCode 从零单刷个人笔记整理(持续更新)

    更新至2020.2.23 github:https://github.com/ChopinXBP/LeetCode-Babel 本人博客用于个人对知识点的记录和巩固. 用几乎所有可行的方法进行了实现和 ...

最新文章

  1. MySQL插入数据时报错Cause: java.sql.SQLException: #HY000的解决方法
  2. sklearn:sklearn.feature_selection的SelectFromModel函数的简介、使用方法之详细攻略
  3. Tomcat 的运行机制
  4. Abp小试牛刀之 图片上传
  5. shell 删除七日内日志_shell日志删除(超容量自动)
  6. ffmpeg 存流为hls文件
  7. opencv 智能答卷识别系统(一)
  8. POI设置背景色采坑记录
  9. php缓冲--ob缓冲
  10. Deep Adversarial Decomposition: A Unified Framework for Separating Superimposed Images 论文阅读笔记
  11. 视频工具箱android,小熊视频工具箱
  12. Python语音基础操作--4.3共振峰估计
  13. jxl实现写入excel模板及导出(带图片)
  14. Resetting first dirty offset of __consumer_offsets
  15. Citus集群拓扑架构介绍
  16. 基础-Lyapunov稳定性相关的理论
  17. Python实现OSM地图数据解析——OSM2Rail
  18. android开发者预览计划弹窗,vivo公布Android 12开发者预览计划 iQOO 7同步适配
  19. 关于STEP文件格式的介绍
  20. 在python中将多张图片合成为视频

热门文章

  1. Java面试题2021,文末有福利
  2. 微信公众号接入开发者模式,服务器配置Token验证
  3. redis的源码编译安装+发布订阅+RDB持久化
  4. 机器学习实战(笔记)------------KNN算法
  5. 【安富莱二代示波器教程】第8章 示波器设计—测量功能
  6. AutoMapper的介绍与使用(二)
  7. HTTPS与MITM
  8. C/C++查找一定范围内的素数(筛法)
  9. ASP.NET 2.0个性化配置(profile)
  10. 雷军宣布红米 Redmi 品牌独立,这对小米意味着什么?