最大连续子矩阵和算法

最大连续子矩阵算法

暴力求解不可取
或许可以从 O(n)复杂度内求解最大连续子数组的算法 得到灵感

O(n2)复杂度求最大连续子矩阵和算法:

  1. 创建一个新矩阵sum,sum[i][j]存放sun[i][0-j]的和
  2. 每个候选矩阵由左上角matrix[i][j]和右下角的元素matrix[p][q]确定,这个候选矩阵的和为res += (sum[i-p][q] - sum[i-p][i-1])
  3. 遍历矩阵,得到最大子矩阵和

代码


def getMaxSub(matrix):sum = []for line in matrix:rowSum = []s = 0for i in line:s += irowSum.append(s)sum.append(rowSum)m = len(matrix)n = len(matrix[0])max = matrix[0][0]i = 0j = 0while(i<m):while(j<n):p = iwhile(p<m):q = jwhile(q<n):res = 0for row in range(i,p+1):if(i==0):res += sum[row][q]else:res += (sum[row][q] - sum[row][i-1])if(res<0): breakmax = res if max<res else maxq += 1p += 1j += 1i += 1print(max)

转载于:https://www.cnblogs.com/zxpnotebook/p/10097261.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB 批量改文件名称

p1dir(pos\*.png);%读取文件夹里的 所有.png格式的图片 p1是个结构体里面包含了图片的名称 创建时间等信息 [r1 c1]size(p1); %piccell(r,1); F[];%特征矩阵初始化 Labels[];%labels初始化 Postion[];%每一个检测窗口的位置初始化 i1; for i1:r1 ImgNp1(i).name; …

计算机控制课程设计体会,计算机控制技术课程设计报告

1课程设计目的…………………………………………………1页码2课程设计题目描述和要求……………………………………1页码3.课程设计报告内容……………………………………………1页码4.心得体会………………………………………………………7页码5.参考数目……………………………

Linux系统编程学习问题回顾

1、关于文件——继续学习系统io和文件io的区别&#xff0c;以及讲明白同步与互斥。关于锁&#xff0c;除了pv&#xff0c;还要继续学习自旋锁读写锁。 系统io和文件io的区别 参考博文 同步与互斥 现代操作系统基本都是多任务操作系统&#xff0c;即同时有大量可调度实体在运行…

tomcat源码 Connector

Connector容器主要负责解析socket请求&#xff0c;在tomcat中的源码位于org.apache.catalina.connector和org.apache.coyote包路径下&#xff1b;通过上两节的分析&#xff0c;我们知道了Connector是Service的子容器&#xff0c;而Service又是Server的子容器。在server.xml文件…

AppDelegate

一、基础知识 1) main.m指定了程序的入口点 UIApplicationMain(argc, argv,nil,NSStringFromClass([StartingPointAppDelegateclass])); 2) AppDelegate的入口点 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptio…

计算机应用基础期末考试要点,计算机应用基础期末复习要点.doc

PAGE 4 / NUMPAGES 5 计算机应用基础 期末复习要点 DATE \ "yyyy-M-d" 2009-1-2PAGE计算机应用基础期末复习要点基础世界上第一台电子数字计算机取名为ENIAC。美籍匈牙利数学家冯诺伊曼提出的计算机的基本工作原理是程序存储。根据计算机使用的主要元器件&#xff0c…

快速对比UART、SPI、I2C通信的区别与应用

参考&#xff1a;带你快速对比SPI、UART、I2C通信的区别与应用&#xff01; 作者&#xff1a;一口Linux 网址&#xff1a;https://mp.weixin.qq.com/s/4_RSM2jk2W6nTboO1W8HCw 电子设备之间的通信就像人类之间的交流&#xff0c;双方都需要说相同的语言。在电子产品中&#xff…

Java使用线程并发库模拟弹夹装弹以及发射子弹的过程

同样是从网上看到的一个需求&#xff0c;需求描述都在代码中。 不多说了&#xff0c;直接贴代码了。相信大家都能够看得懂的&#xff01; package cn.yw.bore;import java.util.ArrayList; import java.util.List; import java.util.concurrent.ArrayBlockingQueue; import jav…

计算机结构原理初步教案板书设计,(计算机工作原理)教学设计(教案)

《(计算机工作原理)教学设计(教案)》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《(计算机工作原理)教学设计(教案)(5页珍藏版)》请在人人文库网上搜索。1、计算机系统的基本组成教学设计基本信息学 科信息技术年 级初二教学形式多媒体教学教 师彭裕红单 位梅州市梅…

U-Boot 移植

目录NXP官方开发板uboot编译测试查找NXP官方的开发板默认配置文件_defconfig配置编译NXP官方开发板对应的uboot烧写验证与驱动测试(定位缺少的驱动)在NXP官方U-Boot 中添加自己的开发板添加开发板默认配置文件添加开发板对应的头文件(mx6ull_alientek_emmc.h)添加开发板对应的板…

江苏计算机信息录入技师选拔考试题,2010年江苏省机关事业单位工人技师资格选拔考试试卷...

考题2010年江苏省机关事业单位工人技师资格选拔考试试卷计算机一、单项选择题1.计算机之所以能按人们的意志自动进行工作&#xff0c;最直接的原因是因为采用()A&#xff0e;二进制数制 B.高速电子元件 C.存储程序控制 D.程序设计语言2.十进制数269转换为十六进制数为()A&#…

打印某个进程下的所有线程--Linux环境

2019独角兽企业重金招聘Python工程师标准>>> 1、ps -mp <进程ID> -o THREAD 在当前用户下&#xff0c;列出pid包含的所有线程。 2、ps -mp <进程ID> -o THREAD,tid 在当前用户下&#xff0c;列出pid包含的所有线程信息及本地线程ID (tid)。 3、ps -…

JavaScript笔记(3)

•位操作符 所有的按位操作符的操作数都会被转成补码形式的有符号的32位整数。 运算符用法描述按位与&#xff08;AND&#xff09;a & b对于每一个比特位&#xff0c;只有两个操作数相应的比特位都是1时&#xff0c;结果才为1&#xff0c;否则为0。按位或&#xff08;OR&am…

转 常见hash算法的原理

散列表,它是基于快速存取的角度设计的&#xff0c;也是一种典型的“空间换时间”的做法。顾名思义&#xff0c;该数据结构可以理解为一个线性表&#xff0c;但是其中的元素不是紧密排列的&#xff0c;而是可能存在空隙。 散列表&#xff08;Hash table&#xff0c;也叫哈希表&a…

Linux 内核顶层Makefile 详解

目录前602行分析make xxx_defconfig 过程Makefile.build 脚本分析make 过程built-in.o 文件编译生成过程make zImage 过程前几章我们重点讲解了如何移植uboot 到I.MX6U-ALPHA 开发板上&#xff0c;从本章开始我们就开始学习如何移植Linux 内核。同uboot 一样&#xff0c;在具体…

android第三次作业

界面&#xff1a; 主要代码&#xff1a; 1.定义一个工具类&#xff0c;在这个类中获取音频文件&#xff0c;并且对歌曲名、歌手和时间等进行格式规范&#xff1a; package com.example.administrator.music;import android.content.Context; import android.database.Cursor; i…

2013年国家计算机一级考试试题,2013年计算机一级的考试试题.doc

2013年计算机一级的考试试题.doc2013年计算机一级考试试题一、单项选择题1、 把计算机分巨型机、大中型机、小型机和微型机&#xff0c;本质上是按_____划分。A 计算机的体积 B CPU的集成度C 计算机总体规模和运算速度 D 计算机的存储容量2、 以微处理器为核心组成的微型计算机…

python try 异常处理 史上最全

在程序出现bug时一般不会将错误信息显示给用户&#xff0c;而是现实一个提示的页面&#xff0c;通俗来说就是不让用户看见大黄页&#xff01;&#xff01;&#xff01; 有时候我们写程序的时候&#xff0c;会出现一些错误或异常&#xff0c;导致程序终止. 为了处理异常&#xf…

Spring+Spring Security+JSTL实现的表单登陆的例子

2019独角兽企业重金招聘Python工程师标准>>> Spring Security允许开发人员轻松地将安全功能集成到J2EE Web应用程序中&#xff0c;它通过Servlet过滤器实现“用户自定义”安全检查。 在本教程中&#xff0c;我们将向您展示如何在Spring MVC中集成Spring Security 3…

数学教师计算机能力提升,深度融合信息技术,提升数学课堂魅力

原标题&#xff1a;深度融合信息技术&#xff0c;提升数学课堂魅力2018年小学数学教学与信息技术深度融合专题网络教研活动2018年10月31日&#xff0c;我校数学科组根据北片指导中心文件精神&#xff0c;进行了一次小学数学教学与信息技术深度融合专题网络教研活动。本次教研活…