[软件工程] 查找二维数组最大子数组的之和 郭莉莉&李亚文
一。
在主函数中实现二维数组的输入、
代码主要函数maxson(),主要利用for()循环先查找出最大字数组的四角的坐标xmin,xmax,ymin,ymax来确定最大子数组,
在循环中算出之和,编写过程中行列的值赋值错误,但经过调试查找出来了;后来在输出最大子数组的地方遇到麻烦,
考虑不周全用普遍的 if(j%n==0)cout<<endl;来进行换行,导致出现错误,应改为if(j%n==m),m为最大子数组的第一列,
源代码:
#include <iostream>
using namespace std; int a[100][100];
int maxson(int M,int N)
{
int xmin,xmax,ymin,ymax;
int m,n,p,q,t;
int i,j,max=a[0][0],sum=0;
for(xmin=0;xmin<M;xmin++)
for(xmax=xmin+1;xmax<=M;xmax++)
for(ymin=0;ymin<N;ymin++)
for(ymax=ymin+1;ymax<=M;ymax++)
{ sum=0;
for(j=xmin;j<xmax;j++)
for(i=ymin;i<ymax;i++)
{
sum=a[i][j]+sum;
}
if(max<sum)
{
max=sum;
m=xmin; n=xmax;
p=ymin; q=ymax;
}
}
cout<<"最大子数组为"<<endl;
t=n-m;
for(i=p;i<q;i++)
for(j=m;j<n;j++)
{ if(j%t==m)
cout<<endl;
cout<<a[i][j]<<'\t'; }
cout<<endl;
return max; } void main()
{
int M=0,N=0,i,j;
while(!M) //检查输入的M,N否则重新输
{
cout<<"数组的行数: ";
cin>>M;
if(M<=0)
{
M=0;
cout<<"行数必须大于0"<<endl;
}
}
while(!N)
{
cout<<"数组的列数: ";
cin>>N;
if(N<=0)
{
cout<<"列数必须大于0"<<endl;
N=0;
}
cout<<"输入数组的值:"; //输入二维数组的值
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
cin>>a[i][j];
} }
cout<<"您输入的数组为:" ; //输出数组
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
if(j%N==0)
cout<<endl;
cout<<a[i][j]<<'\t';
}
cout<<endl;
cout<<"子数组和为:"<<maxson(M,N)<<endl;
}
2.运行结果
[软件工程] 查找二维数组最大子数组的之和 郭莉莉&李亚文的更多相关文章
- 求一个二维整数数组最大子数组之和,时间复杂度为N^2
本随笔只由于时间原因,我就只写写思想了 二维数组最大子数组之和,可以 引用 一维最大子数组之和 的思想一维最大子数组之和 的思想,在本博客上有,这里就不做多的介绍了 我们有一个最初的二维数组a[n ...
- 洛谷 P1972 [SDOI2009]HH的项链-二维偏序+树状数组+读入挂(离线处理,思维,直接1~n一边插入一边查询),hahahahahahaha~
P1972 [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含 ...
- 查找二维数组list[][]中的最大的子数组的和
之前做过最大一维数组子数组的和的题目,现在将数组扩展成二维: 代码如下: #include<iostream> #define null -858993460 using namespac ...
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
1.数组基础 1.什么是数组: 同一类型数据的集合,就是一个容器. 2.数组的好处: 可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式: (一 ...
- C#6 冒泡 折半查找 二维数组
人类思维--计算机逻辑思维 逻辑思维--代码实现 写书法: 描红--临摹--碑贴--自成一体--草 章节复习: 数组:一维,二维,多维 一维:豆角.连续,同一类型. 定义:数据类型[] 数组名=new ...
- 求二维数组最大子数组的和。郭林林&胡潇丹
求二维数组子数组的最大值,开始思路不太清晰.先从最简单的开始. 以2*2的简单数组为例找规律, 假设最大数为a[0][0],则summax=a[0][0],比较a[0][0]+a[0][1].a[0] ...
- 【剑指offer】二分查找二维数组
1 2 3 4 5 6 7 8 9 3 3 1 2 3 4 5 6 7 8 9 10 3 3 12 2 3 4 5 6 7 8 9 10 例子输出: Yes No No 时间限制:1 秒 内存限制:3 ...
- C#学习笔记04--排序/查找/二维数组/交叉数组
一. 冒泡排序(重点) 思路: 每次比较把较小的放在前面, 大的放到后面; 图解:下图是最坏情况下的排序 ` 冒泡排序m个元素, 就有(m-1)趟排序, 第一趟m-1次, 第二趟 m-2次.... ...
- PHP使用array_filter查找二维数组中符合字段和字段值的数据集合
1.方法: /** * 获取符合字段和字段值的数组集合 * @param array $data 待过滤数组 * @param string $field 要查找的字段 * @param $value ...
随机推荐
- Spark常用函数(源码阅读六)
源码层面整理下我们常用的操作RDD数据处理与分析的函数,从而能更好的应用于工作中. 连接Hbase,读取hbase的过程,首先代码如下: def tableInitByTime(sc : SparkC ...
- 工具04_SQL Trace/DBMS_SYSTEM
2014-06-25 Created By BaoXinjian
- OAF_开发系列22_实现OAF条形码BarCode
20150717 Created By BaoXinjian
- java异常笔记
1:<java核心技术卷一>473页提到:如果在子类中覆盖了超类的一个方法,子类方法中声明的已检查异常不能超过超类方法中声明的异常范围. 显然,如果子类中抛出的异常范围比超类还大.多态将无 ...
- npoi上传xlsx文件,并读取数据
视图 public PartialViewResult UploadIndex() { return PartialView(); } <div> <fieldset style=& ...
- git push error: A Contributor Agreement must be completed before uploading
因为是从官方版本库做的镜像,所以有些权限直接从官方同步到了本地. 今天,有同事执行git push操作,报错: 根据网上搜索的内容,在gerrit.config中[auth]中添加如下内容: [aut ...
- kubernetes 内网节点部署笔记(一)
在Centos7上部署kubernetes时,碰到很多坑,特别在摸拟在内网部署时,有来自GFW的障碍,有来自Firewalld的阻塞,反正是各种不服,终于慢慢理顺了思路,自己记录一下,防止遗忘. 环境 ...
- RealTimePerformanceDemoView
using System;using System.Diagnostics;using System.Timers;using System.Windows;using System.Windows. ...
- FPGA低级建模---按键去抖动
FPGA低级建模,原则上一个模块一个功能,如按键去抖动建模中,有两个模块. 1.detect_module 这个是按键检测模块,主要检测按键的高低电平变化,现在按键是按下还是释放. 2.delay_m ...
- vmware 修改IP 提示子网掩码错误~
我打开[编辑]->[虚拟网络编辑器]菜单 修改网络设置 提示 子网掩码错误 如下图所示 上网查询,使用如下方法解决问题 这个虚拟网络编辑器是给你添加网卡的,你添加vmnet1就是在你真实的电脑上 ...