1. 题目

2. 解答

初始化 sum=0,然后遍历数组进行累加。如果 sum 变为负数,也就说再继续累加的话贡献为负,我们需要更新 sum=0,重新开始累加。

初始化 max_sum 为数组的第一个元素,之所以不初始化为零,就是防止出现数组中全为负数的情况,比如 [-2, -1, -3, -4, -5]。在遍历数组的过程中,如果 sum > max_sum,就更新 max_sum=sum,最后 max_sum 即为所求。

class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) { int n = array.size();
int sum = 0;
int max_sum = array[0]; for (int i = 0; i < n; i++)
{
sum += array[i];
if (sum > max_sum) max_sum = sum;
if (sum < 0) sum = 0;
} return max_sum;
}
};

获取更多精彩,请关注「seniusen」!

剑指 Offer——连续子数组的最大和的更多相关文章

  1. 剑指Offer 连续子数组的最大和

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  2. 用js刷剑指offer(连续子数组的最大和)

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  3. 剑指Offer——连续子数组的最大和

    题目描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向 ...

  4. 剑指offer--43.连续子数组的最大和

    最大子段和,最大能取所有 ---------------------------------------------------------------- 时间限制:1秒 空间限制:32768K 热度 ...

  5. 剑指Offer-30.连续子数组的最大和(C++/Java)

    题目: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量中 ...

  6. 3-剑指Offer: 连续子数组的最大和

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  7. Python中的sys.stdin和input、sys.stdout与print--附带讲解剑指offer42-连续子数组的最大和

    2020秋招季,终于开始刷第一套真题了,整套试卷就一道编程题,还是剑指offer上的原题,结果答案死活不对,最后干脆直接提交答案算了,看了下别人的答案,原来是输入数据没有获取的原因,不过这个语法sys ...

  8. 剑指offer-连续子数组的最大和-数组-python

    题目描述 例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止). 给一个数组,返回它的最大连续子序列的和 思路:动态规划 # -*- coding:u ...

  9. 剑指Offer29 连续子数组最大和

    /************************************************************************* > File Name: 29_Greate ...

随机推荐

  1. MongoDb 物理位置应用实现

    1代码实现 官方驱动2.7版本 1.1范围查找 /// <summary> /// 半径范围查找位置信息 /// </summary> /// <param name=& ...

  2. Day1 Mybatis初识(一)

    框架 将重复的,繁琐的代码实现封装,让程序员将更多的精力放在业务的理解和分析上. 框架的作用 提高开发效率 隐藏细节 三大框架SSH  -->   SSM 1)        表述层:   用户 ...

  3. c++——对象的构造和析构函数、构造函数的分类及调用

    1构造函数和析构函数的概念 有关构造函数 1构造函数定义及调用 1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数: 2)构造函数在定义时可以有参数: 3)没有任何 ...

  4. python+requests实现接口测试 - cookies的使用

    在很多时候,发送请求后,服务端会对发送请求方进行身份识别,如果请求中缺少识别信息或存在错误的识别信息, 会造成识别失败. 如一些需要用户登录以后才能访问的页面. import requests mya ...

  5. java基础二 java的跨平台特性

    一:java跨平台的特性: 1.生成不平台无关系的字节码. 2.通过和平台有关的jvm即java虚拟机来执行字节码.jvm不跨平台. 图示: 疑问:1.为什么我们不直接写字节码? 因为字节码只有jvm ...

  6. Intellij IDEA的激活(2100年你值得拥有)

    下载ide官网地址:https://download.jetbrains.com/idea/ideaIU-2018.2.7.exe 安装下一步下一步:进入安装bin目录 首先下载需要破解的jar包链接 ...

  7. 公司架构理解 - 千万 pv 网站

    1.面试题 - 花架构图 commander 控制台,请求处理器 crp 资源分配器 相当于仓管 .推荐系统的架构流程图和每一个模块的作用一定要了解,一般会让你一边画流程图一边讲解每个模块. 2.我自 ...

  8. redis五种数据结构及使用场景

    string(字符串) 存储最简单的key-value结构. value可以是字符串.整数或者浮点数. 可以对整个字符串或者字符串的一部分执行操作: 对整数和浮点数执行自增或者自减操作. 使用场景: ...

  9. laravel5.5源码笔记(七、数据库初始化)

    laravel中的数据库也是以服务提供者进行初始化的名为DatabaseServiceProvider,在config文件的providers数组中有写.路径为vendor\laravel\frame ...

  10. Scala-列表操作

    package com.bigdata object ListO { def main(args: Array[String]): Unit = { println() } val list = Li ...