[LeetCode] 53. Maximum Subarray


質問リンク


https://leetcode.com/problems/maximum-subarray/

コミットコード

/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function(nums) {
    if (nums.length === 1) { return nums[0] }
    let result = nums[0]
    let max = ''
    let sum = 0
    for (j = 0; j < nums.length; j++) {
        max = nums[j]
        for (let i = j; i < nums.length; i++) {
            sum = nums[i] + sum
            if (max < sum) { max = sum }
        }
        if (result < max) { result = max }
        sum = 0
    }
    return result
};

解答方法

  • に配列された各要素(num[j])から始まり、forゲートの周りで和を求め、最大値を探す.
    開始要素(num[j])は標準値であり、最大値は最大値
  • に格納.
  • maxの値を比較し、最大値を探します.=>result