求最大子数组03

题目:

    返回一个二维整数数组中最大联通子数组的和。

 

要求:

   1. 输入一个二维整形数组,数组里有正数也有负数。 求所有子数组的和的最大值。要求时间复杂度为O(n)。    

   2.程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行数, 数组的列数, 每一行的元素, (用逗号分开) 每一个数字都是有符号32位整数,当然,行数和列数都是正整数。

 

代码:

#include<iostream>
#include<fstream>
using namespace std;
/*
//求一维数组子数组和的最大值
*/
int getMax(int j,int *array,int &first,int &last,int col)//first、last为起始元素和最终元素位置
{int sum = 0, max = 0;int a[100];for (j = 0; j < col; j++){sum = sum + array[j];a[j] = sum;if (sum < 0)//和为正数时
        {sum = 0;}if (sum > max){max = sum;if (max == 0)//和为负数时
            {sum = sum + array[j];if (sum > max){max = sum;}}}if (a[j - 1] < 0 ){first = j;}if (a[j] == max){last = j;}}return max;
}int main()
{int i, j,map[100][100];int array[100];int max_row[100];int M[100];int max = 0;int first_num=0;int last_num=0;int row,col;ifstream infile("input.txt",ios::in);if(!infile){cerr<<"open error!"<<endl;exit(1);}infile >> row;infile >> col;for(i = 0; i < row; i++){for(j = 0; j < col;j++){infile >> map[i][j];}}cout << "array:"<<endl;for (i = 0; i < row; i++){for (j = 0; j < col; j++){cout << map[i][j]<<" ";}cout << endl;}cout << endl;for (i = 0; i < row; i++){for (j = 0; j < col; j++){array[j] = map[i][j];}max_row[i]=getMax(j, array,first_num,last_num,col);//求每一行的子数组和的最大值cout << max_row[i] << endl;//每行最大元素cout << "first element" << first_num + 1 << endl;cout << "last element" << last_num + 1 << endl;}for (i = 0; i < row; i++){if (map[i][last_num] >= map[i + 1][first_num] || map[i][first_num] <= map[i+1][last_num]){M[i] = max_row[i] + max_row[i+1];if (M[i] > max){max = M[i];}}}cout << "sum of max connected array:" << max;return 0;
}

 

我的结队开发队友 信1301-1 刘伟

  

转载于:https://www.cnblogs.com/xiaoxt/p/5351333.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纠错——【Singleton array array(0.2) cannot be considered a valid collection.】

# 将数据集按照比例划分为训练集和测试集 def split_datas(datas,labels,random_state1,train_size0.9,test_size0.1):train_data, test_data, train_label, test_label sklearn.model_selection.train_test_split(datas,labels,random_staterandom_state,# 作用是通过随机数来…

Android Studio 模拟器 不要皮肤,效果更好

新建或者编辑虚拟机时&#xff0c;皮肤选择“No Skin”即可&#xff0c;第二张图片就是无皮肤的效果&#xff0c;看着更爽啊。 转载于:https://www.cnblogs.com/toSeeMyDream/p/6265501.html

JAVA 笔记(三)

NullPointerException:空指针异常 原因&#xff1a;数组已经不再指向堆内存了。而你还用数组名去访问元素。对于查找问题&#xff0c;如果找到就返回其索引值&#xff0c;如果找不到就要返回一个负数&#xff08;一般是负一&#xff09;这是必须的&#xff0c;否则如果找不到&a…

安装Wamp后 Apache无法启动的解决方法

安装Wamp后 Apache无法启动的解决方法&#xff0c;网上的解决方案可以说是五花八门&#xff0c;有些说了一大推&#xff0c;一点作用都起不到。 其实解决方法只需两步&#xff1a; 1、安装路径不能包含有中文&#xff0c;这个我不知道为什么&#xff0c;总之如果安装路径中包含…

【Not all parameters were used in the SQL statement】

在添加游标的时候&#xff0c;添加preparedTrue cursor mydb.cursor(preparedTrue) 感谢博主&#xff1a; 【已解决】Python MySQL: Not all parameters were used in the SQL statement - MoonYear530 - 博客园一、事故缘起 今天构造了一个超过 50 多个参数的 SQL 插入语句…

解决Android Studio报错:DefaultAndroidProject : Unsupported major.minor version 52.0

问题描述 今天使用Android Studio 2.0打开我之前的项目时&#xff0c;编译报了如下错误&#xff1a; Error:Cause: com/android/build/gradle/internal/model/DefaultAndroidProject : Unsupported major.minor version 52.0 其中build.gradle文件内容如下所示&#xff1a; // …

SQL语句:从一个表里按年份统计条目数

比如一个数据表名称叫deploypool&#xff0c; 需要知道里面每一年的记录数&#xff0c; 而add_date字段里有增加记录时的时间&#xff0c; 那么语句如下&#xff1a; SELECT EXTRACT(YEAR from add_date),COUNT(id) FROM deploypool GROUP BY EXTRACT(YEAR from add_date);

Php 与 Json

PHP与JSON 在PHP中存在两个与JSON相关的函数&#xff1a; json_encode($array或$object)函数&#xff1a;把一个数组或对象转化为JSON格式的字符串 json_decode($json,$flag)函数&#xff1a;把一个JSON格式的字符串转化为数组或对象 $flag &#xff1a;true&#xff0c;代表转…

docker supervisor + compose

一&#xff1a; Supervisor Docker 容器在启动的时候开启单个进程&#xff0c;比如&#xff0c;一个 ssh 或者 apache 的 daemon 服务。但我们经常需要在一个机器上开启多个服务&#xff0c;这可以有很多方法&#xff0c;最简单的就是把多个启动命令放到一个启动脚本里面…

【pyqt5学习】——tableWidget学习

设置单元格列宽 self.tableWidget.setColumnWidth(0,200) 设置第一行和表头之间的表格线 self.tableWidget.horizontalHeader().setStyleSheet("QHeaderView::section{background:skyblue;color: black;}")

SUSE团队已将重心偏向GCC 7

2019独角兽企业重金招聘Python工程师标准>>> SUSE的Andreas Jaeger在博客中发表了一篇关于SUSE Linux Enterprise Server 12操作系统更新工具链以及它所带来的新开发工具的博文。文章指出&#xff0c;随着GNU Compiler Collection 7的发布&#xff0c;GCC团队为开发…

eclipse-连接TFS错误 the server to respond with a valid http response解决方法

解决办法 如果普通凭证有多个&#xff0c;则将普通凭证给删除。 转载于:https://www.cnblogs.com/nidongde/p/6277243.html

项目总结——机房收费系统合作版

机房合作就结束了&#xff0c;这次合作开发是第一次与别人一块儿开发一个系统&#xff0c;收获还是蛮大的。以下我总结几点算是经验吧&#xff0c;供以后參考&#xff1a; 管理上1.计划在准备合作开发之前我们三个去找米老师&#xff0c;老师给我们规定了时间。半个月。尽管计划…

CenterOs 防火墙设置

为什么80%的码农都做不了架构师&#xff1f;>>> 1. 重启后生效的 开启&#xff1a; chkconfig iptables on 关闭&#xff1a; chkconfig iptables off 2. 及时生效 开启&#xff1a; service iptables start 关闭&#xff1a; service iptables stop 查看防火墙规则…

提交MTBF eservice以及log注意事项

[DESCRIPTION]提交MTBFeservice需要注意的描述&#xff0c;log事项[SOLUTION]提交MTBF eservice时&#xff0c;请注意1.描述清楚问题现象2. 描述清楚问题发生的时间点3.描述清楚问题发生时在run的case提交log时请注意1.MTBF的log通常会很大&#xff0c;若log太大&#xff0c;只…

Apache Cassandra和Apache Ignite:关系并置和分布式SQL

为什么80%的码农都做不了架构师&#xff1f;>>> 在上一篇文章中&#xff0c;回顾和总结了Cassandra中使用的查询驱动数据模型&#xff08;或者说非常规数据模型&#xff09;方法论的缺陷。事实证明&#xff0c;如果不对查询有深入的了解&#xff0c;通过该方法论将…

【pyradiomics学习】——安装pyradiomics以及简单示例

目录 数据集下载&#xff1a; 示例代码 参考文献&#xff1a; bug修复 运行结果&#xff1a; 数据集下载&#xff1a; https://www.jianguoyun.com/p/DcEwQq0Q45bOBxj09JYC (访问密码: gd8dmv) 示例代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 20…

【pyradiomics学习】——影像组学特征

目录 1、形状特征&#xff08;14个&#xff09; 2、一阶特征&#xff08;18个&#xff09; 灰度共生矩阵特征&#xff08;24个&#xff09; 灰度区域大小矩阵特征&#xff08;16个&#xff09; 灰度行程矩阵特征&#xff08;16个&#xff09; 邻域灰度差矩阵特…

Hyper-v Server 2012 Release Candidate 部署体验

很多人知道&#xff0c;Microsoft Hyper-V分为两种类型&#xff1a;一种是作为Windows Server的一个组件&#xff0c;另一种是作为虚拟化产品的单独服务器。虽然两者都是技术上的Hyper-V&#xff0c;每个版本的特性和用例各不相同。 Hyper-V Server直接在物理机器硬件上运行&am…

面向对象的七大原则

总脉络图&#xff1a; 一&#xff1a;单一职责原则(全称&#xff1a;“Single-Responsibility Principle”)又称 单一功能原则 核心&#xff1a;解耦和增强内聚性&#xff08;高内聚&#xff0c;低耦合&#xff09; 说明&#xff1a; 就一个类而言&#xff0c;应该只专注于做一…