《程序员面试金典》最大和子矩阵
题目:有一个正整数和负整数组成的NxN矩阵,请编写代码找出元素总和最大的子矩阵。请尝试使用一个高效算法。
给定一个int矩阵mat和矩阵的阶数n,请返回元素总和最大的子矩阵的元素之和。保证元素绝对值小于等于100000,且矩阵阶数小于等于200。
测试样例:
[[1,2,-3],[3,4,-5],[-5,-6,-7]],3
返回:10
解析:首先求得当前行的最大连续和,然后把后面的每一行加在当前行后继续求最大连续和,直到最后一行遍历完为止。
import java.util.*;public class SubMatrix {//求解数组的最大连续和public static int getMax(int [] arr){int max=arr[0];int sum =arr[0];for(int i=1;i<arr.length;i++){sum=Math.max(arr[i],arr[i]+sum);max=Math.max(sum,max);}return max;}public int sumOfSubMatrix(int[][] mat, int n) {int max=Integer.MIN_VALUE;for(int i=0;i<n;i++){int [] temp =mat[i];//当前行max=Math.max(max,getMax(temp));//当前行的最大值for(int j=i+1;j<n;j++){//循环加上后面的每一行再判断最大值for(int m=0;m<n;m++){temp[m]+=mat[j][m];}max=Math.max(max,getMax(temp));}}return max;}
}
《程序员面试金典》最大和子矩阵相关推荐
- 程序员面试金典——18.12最大和子矩阵
程序员面试金典--18.12最大和子矩阵 Solution1: 参考网址: [1]https://www.cnblogs.com/GodA/p/5237061.html 思想讲的很清楚~ [2]htt ...
- 程序员面试金典 - 面试题 08.13. 堆箱子(DP)
1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...
- C#LeetCode刷题-程序员面试金典
本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...
- 程序员面试金典--第k个数
程序员面试金典--第k个数 题目描述 有一些数的素因子只有3.5.7,请设计一个算法,找出其中的第k个数. 给定一个数int k,请返回第k个数.保证k小于等于100. 测试样例: 3 返回:7 逐个 ...
- 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)
文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...
- 《程序员面试金典》解题目录(更新完毕)
题目来源于LeetCode上的<程序员面试金典>,这里做一个目录方便大家查找.另外有本人的LeetCode解题目录.<剑指Offer>解题目录.LintCode代码能力测试CA ...
- 《程序员面试金典》+《算法导论》
<程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...
- 程序员面试金典——18.13 最大字母矩阵
程序员面试金典--18.13 最大字母矩阵 在牛客网上把此题的难度给大大降低了......... Solution1: 参考网址:https://www.nowcoder.com/questionTe ...
- 【To Do】程序员面试金典——18.11最大子方阵
程序员面试金典--18.11最大子方阵 Solution1:我的答案.最笨的方法,时间复杂度是O(n3)O(n3)O(n^3) class SubMatrix { public:int maxSubM ...
- 程序员面试金典——18.10字符串变换
程序员面试金典--18.10字符串变换 Solution1: 我的答案.穷举法,个人认为此题还是有点难度的... 利用了倒推法以及很高的时间复杂度才解决,并不值得推崇呀. class Change { ...
最新文章
- Enrichment plot的另一种展示
- docker 鱼龙混杂之基础操作篇
- 图片视角转换 cv2.warpPerspective
- python运行错误-Python在运行中发生错误怎么正确处理方法,案例详解!
- 激光标记舱口轮廓生成_宣城国产圆管激光切割机-利晟激光
- jwt php tp5,TP5框架中使用JWT的方法示例
- 20w7珠led驱动电源电路图_LED串联驱动电路图
- HDU2015 偶数求和【入门】
- 如何在 Mac 上设置自定义锁屏信息?
- Greenplum单机版安装
- 有限元法 matlab,MATLAB有限元分析与应用.pdf
- html页面分页显示问题,HTML分页,显示分页页面内容
- kindle oasis2 firmware bug汇总
- libCef基本框架与结构
- 2022年了,微信透明头像怎么设置?不多说,安排
- 【Windows】windows生成rsa密钥对
- 国内量化投资策略的演进方向
- IDEA每次启动都会Indexing
- [JavaSE] 数据类型(变量、整形、长整型、双精度浮点、单精度浮点、字符、字节)
- centos 7 查看oracle,Centos7下oracle配置(详细)
热门文章
- elasticsearch使用优化备忘
- C语言简洁代码:1006 换个格式输出整数 (15分)
- pygame 文字输入交互_pygame能接收用户的文本输入吗?
- python asyncio回调函数_python回调函数用法实例分析
- 如何统一集体的所有人的yum环境(以阿里云为例)
- BGP小实验(二)——还是他,继续第二波走起来
- mysql文档批处理去重_数据导入经验总结
- WIN7如何更改计算机名称
- java jquery基础_day20:JQuery基础(超系统的JavaWEB全套教程)
- python有哪些方面_Python学习中最基本的内容,看看有哪些需要我们学习的