题目

我是按照边进行二分的

class Solution {
public:
int sum[100005]; int a[305][305];
int maxSideLength(vector<vector<int>>& mat, int threshold) { if(threshold==0)
return 0;
int n = mat.size();
int m = mat[0].size(); int len = min(n,m); for(int i=0;i<=len;i++)
{
sum[i]=99999999;
} a[0][0] = mat[0][0];
for(int j=1;j<m;j++)
{
a[0][j] = mat[0][j]+a[0][j-1]; } for(int i=1;i<n;i++)
{
a[i][0]=mat[i][0]+a[i-1][0];
} for(int i=1;i<n;i++)
{
for(int j=1;j<m;j++)
{
a[i][j] = a[i-1][j]+a[i][j-1]+mat[i][j] -a[i-1][j-1];
}
} for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
for(int k=0;k<len;k++)
{
int x=99999999;
if(i-k<0||j-k<0)
continue;
if(k==0)
{
x = mat[i][j];
}
else
{
x=a[i][j];
if(i-k-1>=0)
{
x = x-a[i-k-1][j];
}
if(j-k-1>=0)
{
x = x-a[i][j-k-1];
}
if(i-k-1>=0&&j-k-1>=0)
{ x = x+a[i-k-1][j-k-1];
} } if(x<=threshold)
{
sum[k+1] = min(sum[k+1],x);
}
}
}
} int start = 1;
int end = len; int ans=-1; while(start<=end)
{
int mid = (start + end)/2; if(sum[mid]>threshold)
{
end = mid-1;
} if(sum[mid]<threshold)
{
start = mid+1;
} if(sum[mid]==threshold)
{
ans=mid;
break;
}
} if(ans==-1)
{
if(sum[end]>threshold)
ans=0;
else
ans=end;
}
return ans; }
};

LeetCode 1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold的更多相关文章

  1. 【leetcode】1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold

    题目如下: Given a m x n matrix mat and an integer threshold. Return the maximum side-length of a square ...

  2. leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和]

    题目链接 Given a m x n matrix mat and an integer threshold. Return the maximum side-length of a square w ...

  3. [LeetCode] 718. Maximum Length of Repeated Subarray 最长的重复子数组

    Given two integer arrays A and B, return the maximum length of an subarray that appears in both arra ...

  4. LeetCode 1239. Maximum Length of a Concatenated String with Unique Characters

    原题链接在这里:https://leetcode.com/problems/maximum-length-of-a-concatenated-string-with-unique-characters ...

  5. LeetCode 53. Maximum Subarray(最大的子数组)

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  6. LeetCode 325. Maximum Size Subarray Sum Equals k

    原题链接在这里:https://leetcode.com/problems/maximum-size-subarray-sum-equals-k/ 题目: Given an array nums an ...

  7. [LeetCode] 325. Maximum Size Subarray Sum Equals k 和等于k的最长子数组

    Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If t ...

  8. [LeetCode] 628. Maximum Product of Three Numbers 三个数字的最大乘积

    Given an integer array, find three numbers whose product is maximum and output the maximum product. ...

  9. [Bug]The maximum array length quota (16384) has been exceeded while reading XML data.

    写在前面 在项目中,有客户反应无法正常加载组织结构树,弄了一个测试的程序,在日志中查看到如下信息: Error in deserializing body of reply message for o ...

随机推荐

  1. concurrent.futures模块简单介绍(线程池,进程池)

    一.基类Executor Executor类是ThreadPoolExecutor 和ProcessPoolExecutor 的基类.它为我们提供了如下方法: submit(fn, *args, ** ...

  2. LinuxShell脚本——认识Shell脚本

    LinuxShell脚本——认识Shell脚本 摘要:本文主要介绍了Shell脚本的一些基本知识. 什么是Shell脚本 shell脚本是利用shell的功能所写的一个程序,这个程序是使用纯文本文件, ...

  3. UIImageView三种方式 和 位置分布

    typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, //为将图片按照整个区域进行拉伸(会破坏图片 ...

  4. gitlab设置项目组成员权限

    你敢相信这是个码农? setting菜单的“Members”功能页: 该页面展示了当前Project的成员列表,以及每个成员对应的权限角色,Owner/Master/Developer 注意到该页面顶 ...

  5. [b0027] python 归纳 (十二)_并发队列Queue的使用

    # -*- coding: UTF-8 -*- """ 学习队列 Queue 总结: 1. 队列可以设置大小,也可以无限大小 2. 空了,满了,读写时可以阻塞,也可以报错 ...

  6. Windows Cluster失败后,AlwaysOn在残存Server节点上快速恢复DB的详细步骤

    AlwaysOn是一种集合了高可用和灾难恢复两种功能的技术,它支持一个或多个数据库整体的发生故障转移,它实现了一定程度上的负载均衡,减轻了主服务器的压力,是目前最好的一种选择.那么当极端情况发生时,集 ...

  7. rabbitmq pika(python)订阅发布多客户端消费场景简单使用

    发布端: import pika import time credentials = pika.credentials.PlainCredentials('root', 'root',erase_on ...

  8. Falling back to java on path. This behavior is deprecated

    windows启动elasticsearch报错:warning: Falling back to java on path. This behavior is deprecated. Specify ...

  9. __rpm.so: underfined symbol : rpmpkgverifySigs 故障分析

    前言: 近期漏洞修复频繁,各种组件需要升级,经多次碰撞,发现 yum update 来升级组件是最有效最安全的方式(绿盟通过版本比对的扫描结果可以忽略). 然而,各家的设备各家管,一到升级就发现一堆问 ...

  10. Mysql类

    架构层面可以采用读写分离,主从复制等等,在数据库前端加cache,如memcache,用于用户登录,商品查询     1.mysql优化的原则是什么? 答: 1.mysql的优化首先要从设计表的过程中 ...