博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JZ-C-31
阅读量:5742 次
发布时间:2019-06-18

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

剑指offer第三十一题:连续子数组的最大和

1 //============================================================================ 2 // Name        : JZ-C-31.cpp 3 // Author      : Laughing_Lz 4 // Version     : 5 // Copyright   : All Right Reserved 6 // Description : 连续子数组的最大和 7 //============================================================================ 8  9 #include 
10 #include
11 using namespace std;12 13 bool g_InvalidInput = false;14 15 int FindGreatestSumOfSubArray(int *pData, int nLength) {16 if ((pData == NULL) || (nLength <= 0)) {17 g_InvalidInput = true;18 return 0;19 }20 21 g_InvalidInput = false;22 23 int nCurSum = 0;24 int nGreatestSum = 0x80000000;//最小的整数。int 4个字节,最小数:-2^31:0x80000000,最大数:2^32-1:0x7fffffff。(均为补码)25 for (int i = 0; i < nLength; ++i) {26 if (nCurSum <= 0)27 nCurSum = pData[i];28 else29 nCurSum += pData[i];30 31 if (nCurSum > nGreatestSum)32 nGreatestSum = nCurSum;33 }34 35 return nGreatestSum;36 }37 38 // ====================测试代码====================39 void Test(char* testName, int* pData, int nLength, int expected,40 bool expectedFlag) {41 if (testName != NULL)42 printf("%s begins: \n", testName);43 44 int result = FindGreatestSumOfSubArray(pData, nLength);45 if (result == expected && expectedFlag == g_InvalidInput)46 printf("Passed.\n");47 else48 printf("Failed.\n");49 }50 51 // 1, -2, 3, 10, -4, 7, 2, -552 void Test1() {53 int data[] = { 1, -2, 3, 10, -4, 7, 2, -5 };54 Test("Test1", data, sizeof(data) / sizeof(int), 18, false);55 }56 57 // 所有数字都是负数58 // -2, -8, -1, -5, -959 void Test2() {60 int data[] = { -2, -8, -1, -5, -9 };61 Test("Test2", data, sizeof(data) / sizeof(int), -1, false);62 }63 64 // 所有数字都是正数65 // 2, 8, 1, 5, 966 void Test3() {67 int data[] = { 2, 8, 1, 5, 9 };68 Test("Test3", data, sizeof(data) / sizeof(int), 25, false);69 }70 71 // 无效输入72 void Test4() {73 Test("Test4", NULL, 0, 0, true);74 }75 76 int main(int argc, char** argv) {77 Test1();78 Test2();79 Test3();80 Test4();81 82 return 0;83 }

 

转载于:https://www.cnblogs.com/Laughing-Lz/p/5604459.html

你可能感兴趣的文章
7、kvm虚拟机快照备份
查看>>
visual studio 2005没有找到MSVCR80D.dll问题
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>
我的友情链接
查看>>
2011.9.12
查看>>
java自带线程池和队列详细讲解
查看>>
XML教程
查看>>
AS3.0 Array常用方法总结
查看>>
oracle体系结构
查看>>
POJ 1016 Numbers That Count 不难,但要注意细节
查看>>
J2音乐房
查看>>
Microsoft Exchange Server 2010与Office 365混合部署升级到Exchange Server 2016混合部署汇总...
查看>>
Proxy服务器配置_Squid
查看>>
nagios在apache上安装配置
查看>>
开启“无线网络”,提示:请启动windows零配置wzc服务
查看>>
【SDN】Openflow协议中对LLDP算法的理解--如何判断非OF区域的存在
查看>>
纯DIV+CSS简单实现Tab选项卡左右切换效果
查看>>
帧中继交换机配置实例
查看>>
【原创】MySQL里求给定的时间是所在月份的第几个礼拜
查看>>