Leetcode_面试题 17.24. 最大子矩阵
最大子矩阵问题,n是200,枚举上下行,O(N)求一下最大子段和。
code
class Solution {
public:
    vector<int> getMaxMatrix(vector<vector<int>>& matrix) {
        int n=matrix.size();
        int m=matrix[0].size();
        vector<int> ans(4,0);
        int res=-0x3f3f3f3f;
        //枚举上下界
        for(int i=0;i<n;i++){
            vector<int> h(m,0);
            for(int j=i;j<n;j++){
                for(int k=0;k<m;k++){
                    h[k]+=matrix[j][k];
                }
                //最大子段和
                int tmp=0;
                int l=0;
                for(int k=0;k<m;k++){
                    tmp+=h[k];
                    if(tmp>res){
                        res=tmp;
                        ans[0]=i;
                        ans[1]=l;
                        ans[2]=j;
                        ans[3]=k;
                    }
                    if(tmp<0){
                        tmp=0;
                        l=k+1;
                    }
                }
            }
        }
        return ans;
    }
};
Leetcode_面试题 17.24. 最大子矩阵的更多相关文章
- 【剑指offer】面试题 17. 打印从 1 到最大的 n 位数
		面试题 17. 打印从 1 到最大的 n 位数 题目描述 题目:输入数字 n,按顺序打印出从 1 最大的 n 位十进制数.比如输入 3,则打印出 1.2.3 一直到最大的 3 位数即 999. 解答过 ... 
- 面试题17:打印1到最大的n位数
		// 面试题17:打印1到最大的n位数 // 题目:输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则 // 打印出1.2.3一直到最大的3位数即999. 解题思路: 首先是一个大陷阱,n ... 
- leetcode面试题 17.16. 按摩师
		leetcode面试题 17.16. 按摩师 又一道动态规划题目 动态规划的核心就是总结出一个通行的方程. 但是这道题似乎不太适合使用递归的方式. 所以使用for循环遍历数组. class Solut ... 
- 【LeetCode】面试题 17.16. 按摩师 解题报告(C++)
		作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetco ... 
- 剑指Offer面试题:24.复杂链表的复制
		一.题目:复杂链表的复制 题目:请实现函数ComplexListNode Clone(ComplexListNode head),复制一个复杂链表.在复杂链表中,每个结点除了有一个Next指针指向下一 ... 
- 第17/24周 悲观并发控制(Pessimistic Concurrency)
		大家好,欢迎回到性能调优培训.今天标志着第5个月培训的开始,这个月我们会谈论SQL Server里的锁.阻塞和死锁(Locking, Blocking, and Deadlocking). SQL S ... 
- 剑指Offer:面试题17——合并两个排序的链表
		题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路1: 分别用p1,p2两个指针扫描两个有序链表,p3指针去构建新链表h3. p1.val & ... 
- (剑指Offer)面试题17:合并两个排序的链表
		题目: 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然时按照递增排序的. 链表结点定义如下: struct ListNode{ int val; ListNode* next; }; 思 ... 
- 剑指offer--面试题17
		题目:合并两个排序的单向链表 自己所写代码如下: ListNode* MergeSortedLists(ListNode* pHead1, ListNode* pHead2) { if(pHead1 ... 
随机推荐
- web端手机方向传感器闲谈
			因为工作需要,这段时间接触的手机传感器比较多.总体来说,市场上的传感器表现参差不齐.IPhone在传感器表现方面卓越,而安卓由于什么机型都有,则显得差强人意. 首先还是说说怎么在web端调用手机传感器 ... 
- Java运行 Unsupported major.minor version 51.0 错误
			今天写了简单的Java程序,运行的时候不知道为啥出现这个问题 happy@happy-HP-Compaq-dx7518-MT:~/Study/CrazyJava$ java FieldTest Exc ... 
- 【基础篇】hexo博客搭建教程
			[基础篇]搭建hexo博客(一) 作者:Huanhao bilibili:Mrhuanhao 前言 你是否想拥有属于自己的博客?你是否无奈与自己不会写网站而烦恼? 不要担心,本系列教程将会实现你白嫖的 ... 
- GDB调试系列之了解GDB
			想要熟练利用GDB进行程序调试,首先要了解什么是GDB. 1. 什么是GDB GDB (the GNU Project Debugger) 是一个可以运行在大多数常见的UNIX架构.Windows.M ... 
- 一个基于Bootstrap实现的HMTL可视化编辑工具
			疫情禁足在家,用原生的JS实现了一个HTML可视化编辑工具,页面布局基于Bootstrap.大约一个月时间,打通主要技术关卡,实现了第一版: 可以拖放编辑,实现了几乎所有的bootstrap预定义 ... 
- c语言之单向链表
			0x00 什么是链表 链表可以说是一种最为基础的数据结构了,而单向链表更是基础中的基础.链表是由一组元素以特定的顺序组合或链接在一起的,不同元素之间在逻辑上相邻,但是在物理上并不一定相邻.在维护一组数 ... 
- idea  报Сannot Run Git runnerw.exe: AttachConsole failed with error 6
			报错:Сannot Run Git runnerw.exe: AttachConsole failed with error 6 解决方案:指向Git 的git.exe文件所在的安装目录,配置上就可以 ... 
- input type="file"使用
			问题: 在实际开发过程中,会遇到上传文件的一些需求.但是使用原生的<input type="file" />在使用中存在一些问题 在未上传文件时,显示"no ... 
- [转帖]RSYNC 的核心算法
			RSYNC 的核心算法 https://coolshell.cn/articles/7425.html rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并 ... 
- Linux中软连接和硬连接的区别
			首先,我们要清楚符号链接的目的,在不改变原目录/文件的前提下,起一个方便的别名(在这起个别名,让我想到前阶段学C里typedef也是起别名的). 1.软连接就相当于windows的快捷方式.例如:ln ... 
