题目:有一个正整数和负整数组成的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;}
}

《程序员面试金典》最大和子矩阵相关推荐

  1. 程序员面试金典——18.12最大和子矩阵

    程序员面试金典--18.12最大和子矩阵 Solution1: 参考网址: [1]https://www.cnblogs.com/GodA/p/5237061.html 思想讲的很清楚~ [2]htt ...

  2. 程序员面试金典 - 面试题 08.13. 堆箱子(DP)

    1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...

  3. C#LeetCode刷题-程序员面试金典

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...

  4. 程序员面试金典--第k个数

    程序员面试金典--第k个数 题目描述 有一些数的素因子只有3.5.7,请设计一个算法,找出其中的第k个数. 给定一个数int k,请返回第k个数.保证k小于等于100. 测试样例: 3 返回:7 逐个 ...

  5. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...

  6. 《程序员面试金典》解题目录(更新完毕)

    题目来源于LeetCode上的<程序员面试金典>,这里做一个目录方便大家查找.另外有本人的LeetCode解题目录.<剑指Offer>解题目录.LintCode代码能力测试CA ...

  7. 《程序员面试金典》+《算法导论》

    <程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...

  8. 程序员面试金典——18.13 最大字母矩阵

    程序员面试金典--18.13 最大字母矩阵 在牛客网上把此题的难度给大大降低了......... Solution1: 参考网址:https://www.nowcoder.com/questionTe ...

  9. 【To Do】程序员面试金典——18.11最大子方阵

    程序员面试金典--18.11最大子方阵 Solution1:我的答案.最笨的方法,时间复杂度是O(n3)O(n3)O(n^3) class SubMatrix { public:int maxSubM ...

  10. 程序员面试金典——18.10字符串变换

    程序员面试金典--18.10字符串变换 Solution1: 我的答案.穷举法,个人认为此题还是有点难度的... 利用了倒推法以及很高的时间复杂度才解决,并不值得推崇呀. class Change { ...

最新文章

  1. Enrichment plot的另一种展示
  2. docker 鱼龙混杂之基础操作篇
  3. 图片视角转换 cv2.warpPerspective
  4. python运行错误-Python在运行中发生错误怎么正确处理方法,案例详解!
  5. 激光标记舱口轮廓生成_宣城国产圆管激光切割机-利晟激光
  6. jwt php tp5,TP5框架中使用JWT的方法示例
  7. 20w7珠led驱动电源电路图_LED串联驱动电路图
  8. HDU2015 偶数求和【入门】
  9. 如何在 Mac 上设置自定义锁屏信息?
  10. Greenplum单机版安装
  11. 有限元法 matlab,MATLAB有限元分析与应用.pdf
  12. html页面分页显示问题,HTML分页,显示分页页面内容
  13. kindle oasis2 firmware bug汇总
  14. libCef基本框架与结构
  15. 2022年了,微信透明头像怎么设置?不多说,安排
  16. 【Windows】windows生成rsa密钥对
  17. 国内量化投资策略的演进方向
  18. IDEA每次启动都会Indexing
  19. [JavaSE] 数据类型(变量、整形、长整型、双精度浮点、单精度浮点、字符、字节)
  20. centos 7 查看oracle,Centos7下oracle配置(详细)

热门文章

  1. elasticsearch使用优化备忘
  2. C语言简洁代码:1006 换个格式输出整数 (15分)
  3. pygame 文字输入交互_pygame能接收用户的文本输入吗?
  4. python asyncio回调函数_python回调函数用法实例分析
  5. 如何统一集体的所有人的yum环境(以阿里云为例)
  6. BGP小实验(二)——还是他,继续第二波走起来
  7. mysql文档批处理去重_数据导入经验总结
  8. WIN7如何更改计算机名称
  9. java jquery基础_day20:JQuery基础(超系统的JavaWEB全套教程)
  10. python有哪些方面_Python学习中最基本的内容,看看有哪些需要我们学习的