function FindGreatestSumOfSubArray(arr) { if(arr.length === 0) return; if(arr.length === 1) return arr[0]; var allNeg = true; var negMax = -Infinity; for(var i = 0;i < arr.length;i++) { if(arr[i] > negMax){ negMax = arr[i]; } if(arr[i] >= 0){ allNeg = false; } } if(allNeg) return negMax; var max = -Infinity, cur = 0; for(var i = 0;i < arr.length;i++) { cur += arr[i]; max = Math.max(max, cur); cur = cur >=0 ? cur : 0; } return max; }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/96372.html
摘要:给定一个整数数组,找到一个具有最大和的连续子数组子数组最少包含一个元素,返回其最大和。示例输入输出解释连续子数组的和最大,为。 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 /** * ...
摘要:如果不存在符合条件的连续子数组,返回。示例输入输出解释子数组是该条件下的长度最小的连续子数组。截取从索引到索引的数组,该数组之和若小于,则继续后移,直到大于等于。记录与差值返回的目标数。之后后移一位继续刷新新数组。 算法是一个程序的灵魂 公众号:爱写bug(ID:icodebugs)作者:爱写bug 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的...
摘要:如果不存在符合条件的连续子数组,返回。示例输入输出解释子数组是该条件下的长度最小的连续子数组。截取从索引到索引的数组,该数组之和若小于,则继续后移,直到大于等于。记录与差值返回的目标数。之后后移一位继续刷新新数组。 算法是一个程序的灵魂 公众号:爱写bug(ID:icodebugs)作者:爱写bug 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的...
摘要:动态规划法用表示最大子数组的结束下标为的情形,则对于,有这样就有了一个子结构,对于初始情形,遍历就能得到这个数组,其最大者即可最大子数组的和。动态规划法想法巧妙,运行效率也高,但是没有普遍的适用性。 问题简介 本文将介绍计算机算法中的经典问题——最大子数组问题(maximum subarray problem)。所谓的最大子数组问题,指的是:给定一个数组A,寻找A的和最大的非空连续...
阅读 119·2024-11-07 18:25
阅读 130167·2024-02-01 10:43
阅读 790·2024-01-31 14:58
阅读 766·2024-01-31 14:54
阅读 82583·2024-01-29 17:11
阅读 2891·2024-01-25 14:55
阅读 1929·2023-06-02 13:36
阅读 2871·2023-05-23 10:26