使用javascript的最大子数组

编程入门 行业动态 更新时间:2024-10-11 03:15:45
本文介绍了使用javascript的最大子数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

给出一个整数数组nums

Given an integer array nums,

查找连续的子数组(包含至少一个数字)

find the contiguous subarray (containing at least one number)

具有最大的总和并返回其总和.

which has the largest sum and return its sum.

示例:

输入:[-2,1,-3,4,-1,2,1,-5,4],

Input: [-2,1,-3,4,-1,2,1,-5,4],

输出:6

说明:[4,-1,2,1]的总和= 6.

Explanation: [4,-1,2,1] has the largest sum = 6.

输入:[-1]

输出:-1

输入:[-2,-1]

Inputs:[-2,-1]

输出:[-1]

我在JS中尝试的方法:

What i try in my JS:

var maxSubArray = function(nums) { result=0 negativenumber=[] for(i=0;i<nums.length;i++){ if(nums[i]<0){ negativenumber.push(nums[i]); }else{ result+=nums[i]; } } return result; }; maxSubArray([-2,1,-3,4,-1,2,1,-5,4])//should return 6 maxSubArray([-1])//should return -1 maxSubArray([-1,-2])//should return -1

推荐答案

您可以使用 Kadane的算法.

function maxSum(arr){ let a1 = 0 let a2 = arr[0] arr.forEach((i,a) => { a1 = Math.max(i, a1 + i) a2 = Math.max(a2, a1) }) return a2 } console.log(maxSum([-2,1,-3,4,-1,2,1,-5,4])) console.log(maxSum([-1])) console.log(maxSum([-1,-2]))

更多推荐

使用javascript的最大子数组

本文发布于:2023-11-29 04:27:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1645277.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:大子   数组   javascript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!