1) 一维数组最大连续子数组

  如第homework-01就是一维数组的最大子数组,而当其首位相接时,只需多考虑子数组穿过相接的那个数就行了!

2)二维数组

  算法应该和第一次的相似,或者说是将二维转化为一维。

  直接采取上下界枚举,得出结果。

部分代码如下

int maxsumh(int a[][COL], int row, int col)
{
int i, j, start;
int max, min, temp;
int summax, summin, sumall;
int sum[ROW][COL]; temp = a[][];
for (i = ; i < row; i++)
for (j = ; j < col; j++)
temp = MAX(a[i][j], temp); if (temp < )
return temp; for (start = ; start < row; start++) {
for (j = ; j < col; j++) {
for (i = start; i < row; i++) {
if (i == start)
sum[i][j] = a[i][j];
else
sum[i][j] = a[i][j] + sum[i - ][j];
}
}
for (i = start; i < row; i++) {
max = min = sum[i][];
for (j = ; j < col; j++) {
max = MIN(sum[i][j], max);
min = MAX(sum[i][j], min);
} sumall = summax = summin = ;
for (j = ; j < col; j++) {
sumall += sum[i][j];
summax += sum[i][j];
summin += sum[i][j];
max = MAX(max, summax);
min = MIN(min, summin);
summax = MAX(summax, );
summin = MIN(summin, );
}
temp = MAX(temp, MAX(sumall - min, max));
}
}
return temp;
}

代码时间复杂度为O(n^3),但空间复杂度就很大,导致数组大小限制比较严重,我开数组行,列很大时,容易造成运行堆栈溢出。不怎么会做优化,就没有做了。

1、描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式,  或者其它方法) 让整个程序的架构不至于崩溃的?

  我是每种要求单独设计一个方法函数,直接调用。

2、你在这个作业中学到了什么?  有什么好的设计值得分享?  感想如何 (太容易 / 太难 / 太无趣)?

  个人感觉题目对我来说难度很大。

 

Personal Software Process Stages

时间百分比(%)

实际花费的时间 (分钟)

原来估计的时间 (分钟)

Planning

计划

     

·         Estimate

·         估计这个任务需要多少时间,把工作细化并大致排序

     

Development

开发

     

·         Analysis

·         需求分析 (包括学习新技术)

 6% 30  30

·         Design Spec

·         生成设计文档

 4%  20  20

·         Design Review

·         设计复审 (和同事审核设计文档)

 0  0  0

·         Coding Standard

·         代码规范 (制定合适的规范)

 2%  10  20

·         Design

·         具体设计

 24% 120  60

·         Coding

·         具体编码

 24%  120  60

·         Code Review

·         代码复审

 0  0  0

·         Test

·         测试(自我测试,修改代码,提交修改)

 40%  200  30

Reporting

总结报告

     
  • Test Report
  • 测试报告
       
  • Size Measurement
  • 计算工作量
  • Postmortem & Improvement Plan
  • 事后总结, 并提出改进
       
         
Total 总计 100% 总用时    500 总估计的用时     220

最大连续子数组问题2-homework-02的更多相关文章

  1. Task 4 求数组的连续子数组的最大和(团队合作)

    小组成员:李敏.刘子晗 1.设计思想:由于已经做过这个题目,只要对之前的程序加上相应的测试和约束即可.我们两个人一起商议后,决定了程序的主框架和并列出了最终可以实现的功能.先要定义数组长度和上下限的变 ...

  2. 剑指Offer面试题:28.连续子数组的最大和

    一.题目:连续子数组的最大和 题目:输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).例如输入的数组为{1,-2,3 ...

  3. lintcode循环数组之连续子数组求和

    v 题目:连续子数组求和 II 给定一个整数循环数组(头尾相接),请找出一个连续的子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.如果多个答案,请返回其中任意一个. ...

  4. 剑指Offer 连续子数组的最大和

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  5. 剑指offer面试题31连续子数组的最大和

    一.题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果 ...

  6. lintcode :continuous subarray sum 连续子数组之和

    题目 连续子数组求和 给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.(如果两个相同的答案,请返回其中任意一个) 样例 给定 [-3, ...

  7. 编程算法 - 连续子数组的最大和 代码(C)

    连续子数组的最大和 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个整型数组, 数组里有正数也有负数. 数组中一个或连续的多个整数组成一 ...

  8. 【剑指offer】连续子数组的最大和

    个開始,到第3个为止).你会不会被他忽悠住? 输入: 输入有多组数据,每组測试数据包括两行. 第一行为一个整数n(0<=n<=100000),当n=0时,输入结束.接下去的一行包括n个整数 ...

  9. 找一个数组的最大和的连续子数组(时间复杂度 O(n))(二)

    要求: 要求数组从文件读取. 如果输入的数组很大,  并且有很多大的数字,  就会产生比较大的结果 (考虑一下数的溢出), 请保证你的程序能正常输出. 另外, 如果输入文件的参数有错误, 这个程序应该 ...

随机推荐

  1. c# 使用 静态类+xml序列化 保存配置文件

    namespace TVCorrectionDataProcess{    [XmlRoot(ElementName = "Config")]    public class Co ...

  2. Learning Lua Programming (2) Lua编程基础

    开始学习Lua编程,首先从一些简单的语法开始. 一.编辑环境 下面推荐一个Lua编程的IDE,感觉是很强大的.ZeroBrane Studio,windows平台,mac平台都有.点击打开链接  官方 ...

  3. NDK(17)让ndk支持完整C++,exception,rtti,

    C++ Support The Android platform provides a very minimal C++ runtime support library (/system/lib/li ...

  4. Burnside引理和polay计数学习小记

    在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种.有多少种不同的染色方案?我们列举出,那么一共有16种.但是我们发现,3,4,5,6是同一种,7,8,9,10是用 ...

  5. mysql备份恢复数据库据/表

    备份单个数据库,只备份表,如要恢复,必须先创建一个数据库[root@s]# mysqldump -u root -p dbname1 > dbname1.sql[root@s]# mysql - ...

  6. 对List顺序,逆序,随机排列实例代码

    ackage  Test; import  java.util.Collections; import  java.util.LinkedList; import  java.util.List; p ...

  7. hdu 3433 A Task Process(dp+二分)

    题目链接 题意:n个人, 要完成a个x任务, b个y任务. 求,最短的时间 思路:由于时间较大,用 二分来找时间. dp[i][j]表示 i个人完成j个x任务, 最多能完成的y任务个数 这个题 不是很 ...

  8. struct TABLE_SHARE

    struct TABLE_SHARE { TABLE_SHARE() {} /* Remove gcc warning */ /** Category of this table. */ TABLE_ ...

  9. 类handler

    /** The handler class is the interface for dynamically loadable storage engines. Do not add ifdefs a ...

  10. 使用截图方式将Excel导出为PNG图片的不可行性

    博主前面一篇文章使用了JAVA的Robot机制 模拟打开Excel然后Robot移动到指定区域,截图并生成PNG格式图片 试图使用这种方式将复杂的Excel报表转化成无差别的PNG图片 但是这种方式遇 ...