博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题27:连续子数组的最大和
阅读量:7208 次
发布时间:2019-06-29

本文共 953 字,大约阅读时间需要 3 分钟。

注意:当函数输入无效时,返回为0,而子数组的和也有可能为0,为了区分,设置一个全局变量标记输入是否有效。

思路用下表说明:

代码:

 

#include "stdafx.h"#include 
using namespace std;bool bInvalidInput = false;//用全局变量标记是否为无效输入//求连续子数组的最大和int FindGreatestSumOfSubArray(int nArr[], int nLength){ if (nArr == NULL || nLength <=0) { bInvalidInput = true; return 0; } int nGreatestSum = 0x80000000;//记录连续子数组的最大和,初始值设置为很小的负数 int nCurrentSum = 0; for (int i=0; i
nGreatestSum) { nGreatestSum = nCurrentSum; } } return nGreatestSum;}int _tmain(int argc, _TCHAR* argv[]){ int nArr1[8] = {1, -2, 3, 10, -4, 7, 2, -5}; int nGreatestSumOfSubArray1 = FindGreatestSumOfSubArray(nArr1, 8); if (!bInvalidInput) { cout << "连续子数组的最大和为:" << nGreatestSumOfSubArray1 << endl; } int nArr2[8] = {-1, -2, -3, -10, -4, -7, -2, -5}; int nGreatestSumOfSubArray2 = FindGreatestSumOfSubArray(nArr2, 8); if (!bInvalidInput) { cout << "连续子数组的最大和为:" << nGreatestSumOfSubArray2 << endl; } return 0;}

运行结果:

 

 

 

你可能感兴趣的文章
vue国际化-vue-i18n的配置
查看>>
Java引用计数与实现
查看>>
Broadcast源码分析
查看>>
create-react-app 2.0中使用antd(eject)
查看>>
logstash常用插件介绍
查看>>
Git命令
查看>>
如何写出优质干净的代码,这6个技巧你不能错过!
查看>>
某口腔app发现了不友善词汇(f*ckMobile)
查看>>
SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的
查看>>
JavaScript的数据类型有哪些?
查看>>
如何只在IE上加载CSS样式表
查看>>
个人博客三|首页后台开发
查看>>
调用链系列四:调用链上下文传递
查看>>
在Windows下,用Hexo搭建博客
查看>>
刷前端面经笔记(十一)
查看>>
【跃迁之路】【724天】程序员高效学习方法论探索系列(实验阶段481-2019.2.14)...
查看>>
Kaggle冠军经验分享丨如何用15个月冲到排行榜的首位
查看>>
Stream流与Lambda表达式(一) 杂谈
查看>>
独家揭秘!阿里大规模数据中心的性能分析
查看>>
Valid
查看>>