子数组之和的最大值(二维)
来源:互联网 发布:腾讯购物软件 编辑:程序博客网 时间:2024/05/20 01:34
《编程之美》第2.15节:子数组之和的最大值(二维)
题目:求二维数组中子数组的最大和
解法:从上到下遍历,对于第i行,遍历从第i行往下的所有行,使其加和成为一维数组,然后用一维数组求最大值来做。
代码:
#include<iostream>#include<algorithm>using namespace std;int sub2DarrySum(int A[][5],int N,int M)//返回要排除的值{//int (*arr)[4] 声明了一个指针变量,这个指针指向由4个int组成的数组int result=INT_MIN;int tempResult=0;for(int i=0;i<N;i++){int temp[5]={};for(int j=i;j<N;j++){for(int k=0;k<M;k++)temp[k]+=A[j][k];tempResult=0;for(int k=0;k<M;k++){tempResult+=temp[k];if(result<tempResult)result=tempResult;if(tempResult<0)tempResult=0;}}}return result;}int main(){int A[4][5]={{1,2,-1,-4,-20},{-8,-3,4,2,1},{3,8,10,1,3},{-4,-1,1,7,-6}};int result=sub2DarrySum(A,4,5);cout<<result<<endl;system("pause");return 0;}输出结果:29
从第一行第一列到第三行第三列中的数字。即:
-3,4,2
8,10,1
-1,1,7
0 0
- 二维子数组之和的最大值
- 子数组之和的最大值(二维)
- 二维子数组之和的最大值
- 二维子数组之和的最大值
- 子数组之和的最大值(二维)
- 子数组之和的最大值(二维)
- 子数组之和的最大值(二维)
- 二维子数组之和的最大值
- 二维数组的子数组之和的最大值
- 【ACM】数组的子数组之和的最大值(二维)
- 子数组之和最大值(二维数组)
- 编程之美 子数组之和的最大值(二维)
- 编程之美---子数组之和的最大值(二维)
- 求子数组之和的最大值(二维)
- 2.15 子数组之和的最大值(二维)
- 数字之魅:子数组之和的最大值[二维]+[三维]
- 一维和二维子数组之和最大值
- 子数组之和的最大值
- Windows7 系统安装mysql
- 执行环境及作用域
- 扩展 Web 应用程序的架构问题
- Android Native So加壳技术【转】
- 批量添加主机名映射关系问题
- 子数组之和的最大值(二维)
- 图解C#的值类型,引用类型,栈,堆,ref,out
- 详解java内部类
- http://blog.csdn.net/wudiwo/article/details/7682320#comments
- live555源码分析----H264的数据处理
- 背包题目的合集(第一弹)
- 【ruby学习笔记】正则表达式
- 【javascript】 object.__proto__ 菜鸟学习笔记
- 技术员创业第一步