leetcode1292. 元素和小于等于阈值的正方形的最大边长(二分法+前缀和)
给你一个大小为 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. 元素和小于等于阈值的正方形的最大边长(二分法+前缀和)相关推荐
- LeetCode(1292):元素和小于等于阈值的正方形的最大边长 Maximum Side Length of a Square(Java)
2020.12.24 LeetCode 从零单刷个人笔记整理(持续更新) github:https://github.com/ChopinXBP/LeetCode-Babel 原地动态规划 + 前缀和 ...
- 1292. 元素和小于等于阈值的正方形的最大边长-前缀和算法
1292. 元素和小于等于阈值的正方形的最大边长-前缀和算法 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold. 请你返回元素总和小于或等于阈值的正方形区域的最大边长:如 ...
- 元素和小于等于阈值的正方形的最大边长(来源:力扣(LeetCode))
元素和小于等于阈值的正方形的最大边长(来源:力扣(LeetCode)) 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold.请你返回元素总和小于或等于阈值的正方形区域的最大 ...
- LeetCode 1292. 元素和小于等于阈值的正方形的最大边长(DP)
1. 题目 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold. 请你返回元素总和小于或等于阈值的正方形区域的最大边长: 如果没有这样的正方形区域,则返回 0 . 示例 1 ...
- Leetcode-元素和小于等于阈值的正方形的最大边长(python)
题目 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold. 请你返回元素总和小于或等于阈值的正方形区域的最大边长:如果没有这样的正方形区域,则返回 0 . 示例 1: 输入 ...
- 已知正方形面积求边长c语言,正方形知道面积怎么求边长.
2019-10-09阅读(206) 长方形的周长=(长+宽)×2正方形的周长=边长×4长方形的面积=长×宽正方形的面积=边长×边长三角形的面积=底×高÷2平行四边形的面积=底×高梯形的面积=(上底+下 ...
- java xsi type_无法使用BPMN 2.0 XSD验证XML与元素类型“conditionExpression”关联的属性“xsi:type”的前缀“xsi”未绑定...
嗨我在我的应用程序中使用Activiti框架来管理工作流.我为演示目的创建了一个非常基本的流程定义,它工作得非常好. 但我得到了上述错误,当我在过程定义中包含条件表达式获取上述异常. 以下是流程定义无 ...
- 如何学好C语言--你的学渣朋友告诉你
光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...
- LeetCode 从零单刷个人笔记整理(持续更新)
更新至2020.2.23 github:https://github.com/ChopinXBP/LeetCode-Babel 本人博客用于个人对知识点的记录和巩固. 用几乎所有可行的方法进行了实现和 ...
最新文章
- MySQL插入数据时报错Cause: java.sql.SQLException: #HY000的解决方法
- sklearn:sklearn.feature_selection的SelectFromModel函数的简介、使用方法之详细攻略
- Tomcat 的运行机制
- Abp小试牛刀之 图片上传
- shell 删除七日内日志_shell日志删除(超容量自动)
- ffmpeg 存流为hls文件
- opencv 智能答卷识别系统(一)
- POI设置背景色采坑记录
- php缓冲--ob缓冲
- Deep Adversarial Decomposition: A Unified Framework for Separating Superimposed Images 论文阅读笔记
- 视频工具箱android,小熊视频工具箱
- Python语音基础操作--4.3共振峰估计
- jxl实现写入excel模板及导出(带图片)
- Resetting first dirty offset of __consumer_offsets
- Citus集群拓扑架构介绍
- 基础-Lyapunov稳定性相关的理论
- Python实现OSM地图数据解析——OSM2Rail
- android开发者预览计划弹窗,vivo公布Android 12开发者预览计划 iQOO 7同步适配
- 关于STEP文件格式的介绍
- 在python中将多张图片合成为视频