最大连续子数组问题-homework-01
1)先写我的 github 的介绍:
github 的域名:http://www.github.com/zhuifeng1022
登入 github 大概是下面的视图:

按照助教的方法:我已经建好了代码仓库:命名为 homework-01
代码仓库 homework-01 域名: http://www.github.com/zhuifeng1022/homework-01
2)我选择的教材:中文版 代码大全 (第二版) 斯蒂夫·迈克康奈尔

以下是第一次作业:
我在课上想到的一种算法设计:
#include<stdio.h>
int max(int *a, int n)
{
int i, j;
int high, low;
int max, sum;
for (i = , max = ; i < n; i++)
max = max + a[i];
sum=;
for (i = ; i < n; i++)
{
for(j = ;j < n; j++)
{
for(sum = , low = i, high = j; low <= high; low++)
{
sum = sum + a[low];
if(sum > max)
max = sum;
}
}
}
return max;
} int main()
{
int a[];
int i, n;
FILE *in;
in = fopen("data.in", "r");
fscanf(in, "%d", &n);
for (i = ; i < n; i++)
fscanf(in, "%d", &a[i]);
printf("%d\n", max(a, n));
fclose(in);
return ; }
课后经过和同学的讨论,我又实现了另外一种O(n)的算法:
#include<stdio.h>
int max(int *a, int n)
{
int i;
int max, sum;
for (i = ; i < n; i++)
{
if (a[i] < max)
max = a[i];
}
sum = ;
for (i = ; i < n; i++)
{
sum += a[i];
if(sum > max)
max = sum;
if (sum < )
sum = ;
}
return max;
} int main()
{
int a[];
int i, n;
FILE *in;
in = fopen("data.in", "r");
fscanf(in, "%d", &n);
for (i = ; i < n; i++)
fscanf(in, "%d", &a[i]);
printf("%d\n", max(a, n));
fclose(in);
}
最大连续子数组问题-homework-01的更多相关文章
- Demo003 最大连续子数组问题(《算法导论》4.1-5)
问题 问题描述 给定n个整数(可能为负数)组成的数组,要求一个数组连续下标和的最大值,数组的元素可正.可负.可为零. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的 ...
- 剑指Offer面试题:28.连续子数组的最大和
一.题目:连续子数组的最大和 题目:输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).例如输入的数组为{1,-2,3 ...
- lintcode循环数组之连续子数组求和
v 题目:连续子数组求和 II 给定一个整数循环数组(头尾相接),请找出一个连续的子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.如果多个答案,请返回其中任意一个. ...
- 剑指Offer 连续子数组的最大和
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...
- 剑指offer面试题31连续子数组的最大和
一.题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果 ...
- lintcode :continuous subarray sum 连续子数组之和
题目 连续子数组求和 给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.(如果两个相同的答案,请返回其中任意一个) 样例 给定 [-3, ...
- 最大连续子数组问题2-homework-02
1) 一维数组最大连续子数组 如第homework-01就是一维数组的最大子数组,而当其首位相接时,只需多考虑子数组穿过相接的那个数就行了! 2)二维数组 算法应该和第一次的相似,或者说是将二维转化为 ...
- 编程算法 - 连续子数组的最大和 代码(C)
连续子数组的最大和 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个整型数组, 数组里有正数也有负数. 数组中一个或连续的多个整数组成一 ...
- 【剑指offer】连续子数组的最大和
个開始,到第3个为止).你会不会被他忽悠住? 输入: 输入有多组数据,每组測试数据包括两行. 第一行为一个整数n(0<=n<=100000),当n=0时,输入结束.接下去的一行包括n个整数 ...
- 找一个数组的最大和的连续子数组(时间复杂度 O(n))(二)
要求: 要求数组从文件读取. 如果输入的数组很大, 并且有很多大的数字, 就会产生比较大的结果 (考虑一下数的溢出), 请保证你的程序能正常输出. 另外, 如果输入文件的参数有错误, 这个程序应该 ...
随机推荐
- ConcurrentDictionary的ToDictionary
如果Value是引用,那么在使用Value.Clear()的时候.会清空Value的所有元素,但是不会改变Value的引用 private static void Main() { try { var ...
- csv,txt,excel文件之间的转换,perl脚本
最近接触一些需要csv,txt,excel文件之间的转换,根据一些网上搜索加上自己的改动,实现自己想要的结果为主要目的,代码的出处已经找不到了,还请见谅,以下主要是针对csv&excel 和t ...
- BestCoder Round #2 1001 (简单处理)
题目链接 题意:给N条信息,每个信息代表有x个人从开始的时间 到 结束的时间在餐厅就餐, 问最少需要多少座位才能满足需要. 分析:由于时间只有24*60 所以把每个时间点放到 数组a中,并标记开始的时 ...
- topcoder srm 628 div2 250 500
做了一道题,对了,但是还是掉分了. 第二道题也做了,但是没有交上,不知道对错. 后来交上以后发现少判断了一个条件,改过之后就对了. 第一道题爆搜的,有点麻烦了,其实几行代码就行. 250贴代码: #i ...
- android通过httpClient请求获取JSON数据并且解析
使用.net创建一个ashx文件,并response.write json格式 public void ProcessRequest(HttpContext context) { context.R ...
- Java中hashcode,equals和==
hashcode方法返回该对象的哈希码值. hashCode()方法可以用来来提高Map里面的搜索效率的,Map会根据不同的hashCode()来放在不同的位置,Map在搜索一个对象的时候先通过has ...
- WordPress数据库研究 (转)
该系列文章将会详细介绍WordPress数据总体的设计思路.详细介绍WordPress10个数据表的设计.并对WordPress系统中涉及的用户信息.分类信息.链接信息.文章信息.文章评论信息.基本设 ...
- (1)quartz集群调度机制调研及源码分析---转载
quartz2.2.1集群调度机制调研及源码分析 原文地址:http://demo.netfoucs.com/gklifg/article/details/27090179 引言quartz集群架构调 ...
- linux命令——磁盘管理pwd
Linux中用 pwd 命令来查看”当前工作目录“的完整路径(绝对路径). 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录.在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的 ...
- codeforces 687D Dividing Kingdom II 带权并查集(dsu)
题意:给你m条边,每条边有一个权值,每次询问只保留编号l到r的边,让你把这个图分成两部分 一个方案的耗费是当前符合条件的边的最大权值(符合条件的边指两段点都在一个部分),问你如何分,可以让耗费最小 分 ...