您的位置:首页 > 科技 > IT业 > 福州手机建站模板_建筑工程网络软件_网络营销策划的内容_站长之家网站模板

福州手机建站模板_建筑工程网络软件_网络营销策划的内容_站长之家网站模板

2024/12/22 0:36:56 来源:https://blog.csdn.net/lt6666678/article/details/144316799  浏览:    关键词:福州手机建站模板_建筑工程网络软件_网络营销策划的内容_站长之家网站模板
福州手机建站模板_建筑工程网络软件_网络营销策划的内容_站长之家网站模板

Problem: 918. 环形子数组的最大和
在这里插入图片描述

👨‍🏫 参考题解

在这里插入图片描述

⏰ 时间复杂度: O ( n ) O(n) O(n)
🌎 空间复杂度: O ( 1 ) O(1) O(1)

class Solution {public int maxSubarraySumCircular(int[] nums) {int maxSum = Integer.MIN_VALUE; // 最大子数组和,不能为空int minSum = 0; // 最小子数组和,可以为空//在非循环数组下,max 是当前得出的最大子数组和,min 是最小子数组和int max = 0, min = 0, sum = 0;// sum 是总和for (int x : nums) {// 以 nums[i-1] 结尾的子数组选或不选(取 max)+ x = 以 x 结尾的最大子数组和max = Math.max(max, 0) + x;maxSum = Math.max(maxSum, max);// 以 nums[i-1] 结尾的子数组选或不选(取 min)+ x = 以 x 结尾的最小子数组和min = Math.min(min, 0) + x;minSum = Math.min(minSum, min);sum += x;}// sum == minSum 时表明最小子数组是整个数组(数组元素全是负数的情况)// sum - minSum 为跨越边界的最大子数组和return sum == minSum ? maxSum : Math.max(maxSum, sum - minSum);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com