二维数组求子数组中最大的和
上次的课堂编程题目是一维数组中子数组的和,现在难度加大了不少,二维数组需要考虑的方面很多,这个程序我是在上个课堂题目基础上加以改善完成的,核心代码如下:
int maxSubArray(int a[], int n){assert(a!=NULL && n>0);int cur = 0;int max = INF;for(int i=0; i<n; i++){cur += a[i];//当cur小于0时,应该重新开始计数.if(cur < 0)cur = 0;if(cur > max)max = cur;}return max;}int findMaxSubMatrix(int a[][N], int n){int tmpSum[N];int max = INF;//枚举所有行的可能组合。for(int i=0; i<n; i++){//将tmpSum清零。 memset(tmpSum,0,sizeof(tmpSum));for(int j=i; j<n; j++){//加上当前行的元素。for(int k=0; k<n; k++)tmpSum[k] += a[j][k];int tmpMax = maxSubArray(tmpSum, n);if(tmpMax > max)max = tmpMax;}}return max;}int main(){int a[N][N];int n = 0;while(cin>>n && n){for(int i=0; i<n; i++)for(int j=0; j<n; j++)cin>>a[i][j];cout<<findMaxSubMatrix(a, n)<<endl;}return 0;}
程序运行结果截图:
转载于:https://www.cnblogs.com/feiji/p/3608899.html
二维数组求子数组中最大的和相关推荐
- 求二维数组的子数组中的最大值!
具体代码如下: #include<iostream> using namespace std; int maxSubMatrix_BF(int *a, int m, int n) { ...
- 二维数组联通子数组和最大
题目要求: 返回一个二维整数数组中最大联通子数组的和. 输入一个二维整形数组,数组里有正数也有负数. 文件输出. 思路:和之前的动态规划相识,把二维数组转换为一维数组,先求每一个列的子数组和最大,最后 ...
- c语言二维数组对角线输出字符,用C编程一个4*4的矩阵,用二维数组,求对角线元素的和。,c语言如何使二维数组 输出为矩阵的形式...
导航:网站首页 > 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数组 输出为矩阵的形式 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数 ...
- C语言求二维数组平均数,一道JavaScript的二维数组求平均数的题
JavaScript中只支持一维数组,但是可以在数组中嵌套数组来创建二维以至于多维的数组.今天下午在看书时候,发现一道感觉比较有意思的题,就是js中如何求二维数组的列之和和行之和,现在就给大家分享下, ...
- 【chatGPT】01 数组、二维数组在不同语言中的存储方式
问:数组在C++中的存储方式是什么?Java呢?Python呢?可以举例吗? C++ 在C++中,数组是连续分配的内存单元,具有相同的类型和大小. C++会将数组的第一个元素存储在指向数组的指针中,因 ...
- 定义一个二维数组,写函数来实现对该二维数组求最大值。(要求,用行指针为函数形参)
// 121219 上机任务3.cpp : 定义控制台应用程序的入口点. // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * ...
- 一个学习小组有5个人,每个人有三门课的考试成绩。将各个数据保存到二维数组a[5][3]中,并求全组分科的平均成绩和总平均成绩
对二维数组的简单使用 #include<stdio.h> void main() {int i,j,sum,v[3],average;int a[5][3]={{80,75,92},{61 ...
- 二位数组的子数组最大值
该题是poj的1050号题:http://poj.org/problem?id=1050 同时在<编程之美> 2.15 小节 思想是: 1.把二维降到一维,把 同一列的若干个数的和算出来, ...
- 二维数组求最大子矩阵的和
题目:返回一个二维整数数组中最大子数组的和 要求: 输入一个二维整形数组,数组里有正数也有负数. 数组中连续的一个或多个正数组成一个子数组,每个子数组都有一个和. 设计思想: 将二维数组的所能组成的所 ...
最新文章
- python 把int类型转bytes以及把bytes 转int 类型(使用方法to_bytes ,from_byte, struct)
- linux启动关闭脚本,Linux下自动启动关闭Oracle脚本
- CF17E:Palisection——题解
- 互联网50周年!这有它的一张“出生证明”
- PHP之旅4 php 超全局变量
- c语言利用文件体写在桌面上,在C语言中怎样新建一个文件夹?
- java 调度框架_java调度框架Quartz(一)
- 四:Java+SpringBoot框架使用(两种携带参数的get接口开发)
- 【Copy攻城狮日志】借助Taro暴改Nideshop实现电商支付宝小程序雏形
- 仿淘宝Banner:左右滑动ViewPager+最后一张滑动查看详情
- java文本反垃圾_java毕业设计_springboot框架的反垃圾邮件管理分析系统
- 【通知】4月18日22:00至4月19日2:00网站服务暂停公告
- 语音识别-声纹识别-语音合成【专题三】
- 你迷茫的原因在于读书太少而想的太多,迷茫不知所措时,那就多读书吧!年轻是本钱,但不努力就不值钱
- Swift获取当前连接WIFI名称,IOS获取当前连接WIFI名称
- OpenGL核心技术之Gamma校正
- 丁香园php岗_丁香园面试药学新闻编辑岗位体悟
- php年会总结,2019年终总结(示例代码)
- caffe之(四)全连接层
- dom4j将word转pdf详细介绍(亲测可用)
热门文章
- 北斗导航 | 大规模点云地图的自动化构建(高翔:SLAM十四讲)
- 在通常的微型计算机的汉字系统中,计算机应用基础win7+office2010试题(三校生公共课3)...
- 语音增强效果的测试方法
- MySQL 笔记9 -- PyMySQL
- 分子生物学-共价键基础
- python3精要(8)-对象,变量,引用
- 【深度学习】用Pytorch给你的母校做一个样式迁移吧!
- 【NLP】Transformer的中年危机?
- 【机器学习】一位机器学习高手的个人技术书目
- 【Python基础】快速入门Python(讲解、习题)