leetcode918.环形子数组的最大和

参考了灵神的题解,然后只要用动态规划求解子数组的最大和和最小和就可以

java 复制代码
class Solution {
    public int maxSubarraySumCircular(int[] nums) {
        int sum = nums[0];
        //变量记录普通子数组的最大和
        int currentMax = nums[0];
        int globalMax = nums[0];
        //变量记录普通子数组的最小和
        int currentMin = nums[0];
        int globalMin = nums[0];

        //动态规划求解普通子数组的最大和和最小和
        for (int i = 1; i < nums.length; i++) {
            sum += nums[i];
            currentMax = Math.max(currentMax + nums[i], nums[i]);
            globalMax = Math.max(globalMax, currentMax);
            currentMin = Math.min(currentMin + nums[i], nums[i]);
            globalMin = Math.min(globalMin, currentMin);
        }
        return sum == globalMin ? globalMax : Math.max(globalMax, sum - globalMin);
    }
}
相关推荐
liulilittle27 分钟前
IP校验和算法:从网络协议到SIMD深度优化
网络·c++·网络协议·tcp/ip·算法·ip·通信
bkspiderx2 小时前
C++经典的数据结构与算法之经典算法思想:贪心算法(Greedy)
数据结构·c++·算法·贪心算法
中华小当家呐3 小时前
算法之常见八大排序
数据结构·算法·排序算法
沐怡旸4 小时前
【算法--链表】114.二叉树展开为链表--通俗讲解
算法·面试
tju新生代魔迷4 小时前
数据结构:双向链表
数据结构·链表
一只懒洋洋4 小时前
K-meas 聚类、KNN算法、决策树、随机森林
算法·决策树·聚类
方案开发PCBA抄板芯片解密5 小时前
什么是算法:高效解决问题的逻辑框架
算法
songx_995 小时前
leetcode9(跳跃游戏)
数据结构·算法·游戏
学c语言的枫子6 小时前
数据结构——双向链表
c语言·数据结构·链表
小白狮ww6 小时前
RStudio 教程:以抑郁量表测评数据分析为例
人工智能·算法·机器学习