精华内容
下载资源
问答
  • 解法一 一次遍历 ... 0,当-1加3时等于2,而23本身要小所以累加数组和抛弃前面和-1,而重新加上3。每次记录最大子数组和不断打擂可以得出结果。 class Solution { public int maxSubArray(int[] .

    在这里插入图片描述

    解法一 一次遍历

    直观的解法是遍历数组的所有子数组打擂求解,但是这种方法空间复杂度为O(n2)O(n^2)。为了降低复杂度可以举一个例子,尝试从头到尾逐个累加每个数字,以数组[1,-2,3,10,-4,7,2,-5]为例:
    在这里插入图片描述
    可以发现1+ -2 = -1 < 0,当-1加3时等于2,而2比3本身要小所以累加数组和得抛弃前面的和-1,而重新加上3。每次记录最大的子数组和不断打擂可以得出结果。

    class Solution {
        public int maxSubArray(int[] nums) {
            int curSum = 0;//当前和
            int greatestSum = Integer.MIN_VALUE;
            for(int i = 0; i < nums.length; i++) {
                if(curSum < 0) {
                    curSum = nums[i];
                }else {
                    curSum += nums[i];
                }
                if(curSum > greatestSum) {
                    greatestSum = curSum;
                }
            }
            return greatestSum;
        }
    }
    

    解法二 动态规化

    使用动态规化的思想来分析问题。如果用f(i)f(i)表示第ii个数字结尾的子数组的最大和,那么需要求出max[f(i)](0<=i<n)max[f(i)] (0<=i<n)可以有以下递归公式求解f(i)f(i):
    在这里插入图片描述
    这种思路代码与解法一一至,递归公式中的f(i)f(i)即为curSum,max[f(i)]max[f(i)]greatestSum

    展开全文
  • Liberation_VS2010下最爽字体之一

    热门讨论 2012-03-30 11:28:48
    一看代码环境,就能区别那是数字0,还是O,这也就能保证代码整体整洁,数字0起有些中间还有一杠或者一点,要清爽多了; 5、标点符号明显,区别,易于辨认; 6、()、[]、{}、<> 位置十分正确,不倾斜...
  • 烟雾传感器灵敏度与烟雾浓度关系研究。火灾是煤矿重大灾害之一,据统计我国主 要煤矿近40年来发生火灾一万多次,每年约三 百多次。需要建立健全防灭火系统矿井达 300对以上。...致死高达7O ~ 90 。
  • 不幸的是,虽然关系型数据库历经了约30年的发展,有成熟的理论和大量的实践基础,但是,大多数设计、开发人员在设计数据库结构时仍然是“跟着感觉走”,根据业务的需要和编程的方便,把字段这张表放几个那张表放几个...
  • 不幸的是,虽然关系型数据库历经了约30年的发展,有成熟的理论和大量的实践基础,但是,大多数设计、开发人员在设计数据库结构时仍然是“跟着感觉走”,根据业务的需要和编程的方便,把字段这张表放几个那张表放几个...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.2 使用我编译器,下面代码inti=7;printf("%d\n",i++*i++);打印出49。不管按什么顺序计算,难道不该是56吗? 3.3 对于代码inti=3;i=i++;不同编译器给出不同i值,有为3,有为4,哪个是正确? *3.4 ...
  • 集成电路的类型很多,从大的方面可以分为模拟电路和数字集成电路2 大 类。数字集成电路广泛用于计算机、控制与测量系统,以及其它电子设备中。 一般说来,数字系统中运行的电信号,其大小往往并不改变,但在实践分布...
  • 枸杞由来和技术栈

    2021-01-02 15:11:32
    而我当时的工作主要负责的是 NW.js 和 Node.js ,再加上写一点 Vue。于是我就想做一个使用前端新技术的项目让自己不要落伍了。使用这些新技术不应该是浅尝辄止,而应该尽量向工业级和 best pratice 靠拢...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.2 使用我编译器,下面代码int i= 7; printf("%d\n", i++ * i++); 打印出49。不管按什么顺序计算,难道不该是56吗? 33  3.3 对于代码int i=3; i=i++; 不同编译器给出不同i值,有为3,有为4,哪个是...
  • 3.2 使用我编译器,下面代码int i= 7; printf(%d\n, i++ * i++); 打印出49。不管按什么顺序计算,难道不该是56吗? 33  3.3 对于代码int i=3; i=i++; 不同编译器给出不同i值,有为3,有为4,哪个是...
  • 说明: 如果值为TRUE, 即使源长度目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级读取锁, 以防止在包含该查询事务处理被提交...
  • 他最热衷的是逻辑与物理数据库的设计、 数据库与Java应用程序的集成、查询优化器,以及与性能管理和优化相关的所有方面。他还是Trivadis性能团队和OakTable 网站的核心成员。.  童家旺 安徽芜湖人。毕业于上海电力...
  • 来说,思想是让子进程accept并处理请求,父进程通过子进程发来信息控制请求与子进程之间关系。 代码如下: 代码如下: #include #include #include #include #include #include #include #...
  • o 4.2 使用我编译器,下面代码 int i=7; printf("%d\n", i++ * i++); 返回 49?不管按什么顺序计算, 难道不该打印出56吗? o 4.3 对于代码 int i = 3; i = i++; 不同编译器给出不同结果, 有为 3, 有为 4,...
  • 对乘以2而言,肯定存在某一个丑T2,排在他之前每一个丑乘以2得到结果都会小于已有最大丑,在他之后每一个丑乘以2得到结果都会太,我们只需记下这个丑数的位置,每次生成新数的时候,去更新...
  • php高级开发教程说明

    2008-11-27 11:39:22
    大的项目如果缺乏计划将导致更多的错误,在开发后期,可能会遇到没有或无法预见的 困难,这是由于缺乏计划的时间和工作,这些困难可能会严重到让你彻底地重组整个项目。例 如,对一个依赖额外数据库提取层的数据库...
  • 2.运行Qt Creator,首先弹出的是欢迎界面,这里可以打开其自带的各种演示 程序。 3.我们用File->New 菜单来新建工程。 4.这里我们选择Qt4 Gui Application。 5.下面输入工程名和要保存到的文件夹路径。我们这里的...
  • 大话数据结构

    2018-12-14 16:02:18
    理解大o推导不算难,难的其实是对数列的一些相关运算,这考察的更多的是数学知识和能力。 2.9.1算法时间复杂度定义 29 2.9.2推导大o阶方法 30 2.9.3常数阶 30 2.9.4线性阶 31 2.9.5对数阶 32 2.9.6平方阶 32 ...
  • 只不过起通配符,它能更精确地描述你需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字字符串(像010-...
  • java基础入门教程

    热门讨论 2009-04-29 21:36:10
    2 软 件 开 发 方 法 :由 于 Java 语 言 面 向 目 标 特 性 , 所以完 全 可 以 用 O-O的技 术 与 方 法 来 开 发 ,这 是 符 合 最 新 软件 开 发 规 范 要 求 。 3 Java 语 言 动 画 效 果 远 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 107
精华内容 42
关键字:

得数比7o大的是