题目描述:
给定一个整数数组 nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
思路:累加+比较
从第一个数开始累加,如果发现和变小了,就舍弃这个数,将cur变为0,再重新开始累加
function maxSubArray(nums){
let cur = 0;
let max = -Number.MAX_VALUE;
for(let i=0;i<nums.length;i++){
cur += nums[i];
max = Math.max(max,cur);
cur = cur>0? cur : 0;
}
return max
}
💛说明:(非常重要!)
在JS中,由于内存的限制,ES并不支持表示这个世界上的所有数值,最小值保存在Number.MIN_VALUE,这个值在多数浏览器中是 5e-324; 可以表示的最大数据保存在Number.MAX_VALUE,这个值在多数浏览器中是 1.7976931348623157e+308
总之 范围是 5e-324 ~ 1.7976931348623157e+308
如果需要定义一个很小的数,在前面加负号