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);
    }
}
相关推荐
文丑颜不良啊5 分钟前
LeetCode2241~2260题目解析
java·leetcode
文丑颜不良啊10 分钟前
LeetCode2321~2340题目解析
java·leetcode
青少儿编程课堂40 分钟前
蓝桥杯青少组图形化 STEMA 省考(报名倒计时·11/22开考)+ 全国青少年信息素养大赛 2026—2027赛季 + 电子学会图形化考级:校园华容道大闯关
c++·python·算法·bfs·信息学竞赛
白杨尚青1 小时前
C++进阶篇(五):红黑树——四条规则、三种插入情况与旋转变色
开发语言·数据结构·c++·stl·红黑树·平衡二叉树
在猴站学算法2 小时前
(《统计学习方法》(第2版) 李航)第2章 感知机算法
学习·算法·机器学习·统计学习
Rainmicro2 小时前
【无标题】
java·数据库·算法
NEFU_Jyj12 小时前
牛客周赛R168
算法
likexuec18 小时前
数据结构(2)
数据结构
文丑颜不良啊19 小时前
LeetCode2221~2240题目解析
java·leetcode