hgq's docs
主页
ES6-阮一峰 (opens new window)
Vue文档 (opens new window)
Axios文档 (opens new window)
Vue Router (opens new window)
Vuex文档 (opens new window)
面试题-Vue (opens new window)
面试题-JS (opens new window)

guoguoqiqi

漫不经心的向往
主页
ES6-阮一峰 (opens new window)
Vue文档 (opens new window)
Axios文档 (opens new window)
Vue Router (opens new window)
Vuex文档 (opens new window)
面试题-Vue (opens new window)
面试题-JS (opens new window)
  • 反转链表
  • 无重复字符的最长子串
  • LRU 缓存
  • 数组中的第K个最大元素
  • K个一组翻转链表
  • 三数之和
  • 手撕快速排序
  • 最大子数组和
  • 两数之和
  • 合并两个有序链表
  • 环形链表
  • 二叉树的层序遍历
  • 买卖股票的最佳时机
  • 二叉树的锯齿形层序遍历
  • 相交链表
  • 有效的括号
  • 二叉树的最近公共祖先
  • 合并两个有序数组
  • 搜索旋转排序数组
  • 最长回文子串
  • 岛屿的数量
  • 全排列
  • 字符串相加
  • 高频算法题
guoguoqiqi
2022-03-17

最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组 是数组中的一个连续部分。

示例 1:

输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。
1
2
3
/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function(nums) {
    let max = nums[0]

    for (let i = 0; i < nums.length; i++) {
      let start = i
      let sum = 0
      // 每个点做一次起点,将后面的数字与和累加,不断更新最大值
      while (start < nums.length) {
        sum += nums[start]
        if (sum > max) max = sum
        start++
      }
    }

    return max
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximum-subarray

← 手撕快速排序 两数之和→

最近更新
01
vuex数据持久化怎么做
05-22
02
vue的动态路由怎么配置使用
05-22
03
vue权限控制一般怎么做
05-22
更多文章>
Theme by Vdoing | Copyright © 2022-2022 Guoquoqiqi | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式