最大连续子数组问题2-homework-02
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 |
总结报告 |
|||
|
||||
|
||||
| Total | 总计 | 100% | 总用时 500 | 总估计的用时 220 |
最大连续子数组问题2-homework-02的更多相关文章
- Task 4 求数组的连续子数组的最大和(团队合作)
小组成员:李敏.刘子晗 1.设计思想:由于已经做过这个题目,只要对之前的程序加上相应的测试和约束即可.我们两个人一起商议后,决定了程序的主框架和并列出了最终可以实现的功能.先要定义数组长度和上下限的变 ...
- 剑指Offer面试题:28.连续子数组的最大和
一.题目:连续子数组的最大和 题目:输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).例如输入的数组为{1,-2,3 ...
- lintcode循环数组之连续子数组求和
v 题目:连续子数组求和 II 给定一个整数循环数组(头尾相接),请找出一个连续的子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.如果多个答案,请返回其中任意一个. ...
- 剑指Offer 连续子数组的最大和
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...
- 剑指offer面试题31连续子数组的最大和
一.题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果 ...
- lintcode :continuous subarray sum 连续子数组之和
题目 连续子数组求和 给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.(如果两个相同的答案,请返回其中任意一个) 样例 给定 [-3, ...
- 编程算法 - 连续子数组的最大和 代码(C)
连续子数组的最大和 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个整型数组, 数组里有正数也有负数. 数组中一个或连续的多个整数组成一 ...
- 【剑指offer】连续子数组的最大和
个開始,到第3个为止).你会不会被他忽悠住? 输入: 输入有多组数据,每组測试数据包括两行. 第一行为一个整数n(0<=n<=100000),当n=0时,输入结束.接下去的一行包括n个整数 ...
- 找一个数组的最大和的连续子数组(时间复杂度 O(n))(二)
要求: 要求数组从文件读取. 如果输入的数组很大, 并且有很多大的数字, 就会产生比较大的结果 (考虑一下数的溢出), 请保证你的程序能正常输出. 另外, 如果输入文件的参数有错误, 这个程序应该 ...
随机推荐
- 结巴分词标注兼容_ICTCLAS2008汉语词性标注集
计算所汉语词性标记集Version 3.0制订人:刘群 张华平 张浩计算所汉语词性标记集... 10. 说明... 11. 名词 (1个一类,7个二类,5个三类) 22. 时间词(1个一类,1个二类) ...
- nand flash 扇区的管理以及初始化
(1)首先需要了解NAND FLASH的结构.如图: 以镁光MT29F4G08BxB Nand Flash为例,这款Flash(如上图)以4个扇区(sector)组成1个页(page),64个页(pa ...
- github的large file storeage
https://git-lfs.github.com/ 1.从这个网址下载git-lfs-windows-amd64-1.1.0.exe,运行这个安装包 2.然后打开git bash 输入git lf ...
- vim常用命令 vim键盘布局
vim键盘布局,vim快捷键 vim常用命令:
- oracle索引,索引的建立、修改、删除
索引,索引的建立.修改.删除 2007-10-05 13:29 来源: 作者: 网友评论 0 条 浏览次数 2986 索引索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和 ...
- Java实现RC4加解密
package com.vrv.paw.utils; public class RC4Util { public static String decry_RC4(byte[] data, String ...
- [转]ASP.NET数据库连接字符串总结
这个不难,而且很重要,但总忘,找了篇比较全的,作为资料. 原文链接http://developer.51cto.com/art/201107/275406.htm 关于数据库链接字符串的相关知识,我们 ...
- UVA 1663 Purifying Machine (二分图匹配,最大流)
题意: 给m个长度为n的模板串,模板串由0和1和*三种组成,且每串至多1个*,代表可0可1.模板串至多匹配2个串,即*号改成0和1,如果没有*号则只能匹配自己.问:模板串可以缩减为几个,同样可以匹配原 ...
- [转](多实例)mysql-mmm集群
一.需求说明 最近一直在学习mysql-mmm,想以后这个架构也能用在我们公司的业务上,我们公司的业务是单机多实例部署,所以也想把mysql-mmm部署成这样,功夫不负有心人,我成功了,和大家分享一下 ...
- 【Struts】服务器文件的上传和下载
Java中获得文件的文件后缀 import java.io.*; public class FileTest{ public static void main(String args[]){ File ...