天天看點

傳回一個二維整數數組中最大子數組的和1

一.題目:傳回一個整數數組中最大子數組的和。

二.要求: 輸入一個整形數組,數組裡有正數也有負數。

        數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。

        求所有子數組的和的最大值。要求時間複雜度為O(n)。

三.結對程式設計要求: 兩人結對完成程式設計任務。

                     一人主要負責程式分析,代碼程式設計。 一人負責代碼複審和代碼測試計劃。

                     發表一篇部落格文章講述兩人合作中的過程、體會以及如何解決沖突(附結對開發的工作照)。

四.隊員:孔維春,崔鵬勃

五.合作過程及體會:

我和崔鵬勃兩人輪流負責程式,分析代碼程式設計和代碼複審,代碼測試,加強了合作程式設計能力,對自己有很大提升,發生沖突時,先通過互相交流意見求同存異,再從網上查閱資料或者實際程式設計,選擇最合适的方法,思路.

六.源程式代碼

// ConsoleApplication3.cpp : 定義控制台應用程式的入口點。
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}

#include <iostream>
using namespace std;
#include<stdlib.h>
#include<time.h>

int main()
{
	int i;
	int a[10];
	int max = 0;
	int b = 0;

	srand(time(NULL));
	cout << "數組為:";
	for (i = 0; i<10; i++)
	{
		a[i] = rand() % 201 - 100; //随機生成-10 到 10的整數
	}
	for (i = 0; i<10; i++)
	{
		cout << a[i] << " ";
	}
	cout << endl;

	for (i = 0; i < 10; i++)
	{
		b += a[i];
		if (b < 0)
		b = 0;
		if (b > max)
		max = b;
	}
	if (max == 0)
	{
		max = a[0];
		for (i = 0; i < 10; i++)
		{
			if (max < a[i])
			{
				max = a[i];
			}
		}
	}
	cout << "最大子數組為:" << max << endl;
	system("pause");
	return 0;
}
      

七.結果截圖

傳回一個二維整數數組中最大子數組的和1