- 测试题目求整数数组的子数组之和的最大值。
- 题目分析首先是明确题目的目的:求最大值;其次是考虑子数组求和。这里将求最大值写成一个单独的函数。主函数未测试函数。这里用到了二重循环,时间复杂度为N^2.
- 源代码分析
#include"stdio.h" #define MAXSIZE 100 /*int Max(int num[],int length){ int max=num[0]; //int n; int sum=0; int flag=0; for(int j=0;j
这里我进行了一些异常情况的处理
- 上课思路
- 扩展-线性实现如何利用线性实现,首先要对整形数组进行分析:1、零对于和没有影响。2、数组是全负的情况(若只有负数和零,则max=0)
for(int i=0;i
3、数组是全正的情况(含0)
for(int i=0;i
4、有正有负的情况 首先是要顺序寻找第一个大于零的整数,记录下来数组下标,然后接着寻找下一个负数,得到负数段,也求和,得到一段正数段,求和,按照这种方法遍历整个数组。
对这些正数段与负数段进行判断与求和,从而实现求出最大者。 -
线性实现
待下回分解!