LeetCode918. Maximum Sum Circular Subarray——动态规划

文章目录

    • 一、题目
    • 二、题解

一、题目

Given a circular integer array nums of length n, return the maximum possible sum of a non-empty subarray of nums.

A circular array means the end of the array connects to the beginning of the array. Formally, the next element of nums[i] is nums[(i + 1) % n] and the previous element of nums[i] is nums[(i - 1 + n) % n].

A subarray may only include each element of the fixed buffer nums at most once. Formally, for a subarray nums[i], nums[i + 1], …, nums[j], there does not exist i <= k1, k2 <= j with k1 % n == k2 % n.

Example 1:

Input: nums = [1,-2,3,-2]
Output: 3
Explanation: Subarray [3] has maximum sum 3.
Example 2:

Input: nums = [5,-3,5]
Output: 10
Explanation: Subarray [5,5] has maximum sum 5 + 5 = 10.
Example 3:

Input: nums = [-3,-2,-3]
Output: -2
Explanation: Subarray [-2] has maximum sum -2.

Constraints:

n == nums.length
1 <= n <= 3 * 104
-3 * 104 <= nums[i] <= 3 * 104

二、题解

class Solution {
public:int maxSubarraySumCircular(vector<int>& nums) {int n = nums.size();int all = nums[0],maxSum = nums[0],minSum = nums[0],maxPre = nums[0],minPre = nums[0];for(int i = 1;i < n;i++){all += nums[i];maxPre = max(nums[i],maxPre+nums[i]);maxSum = max(maxSum,maxPre);minPre = min(nums[i],minPre+nums[i]);minSum = min(minSum,minPre);}return all == minSum ? maxSum : max(maxSum,all - minSum);}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/684387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter run 一直 Running Gradle task ‘assembleDebug’…

发生缘由 Flutter 项目引入 fluttertoast 插件后&#xff0c;执行 Flutter run 一直 Running Gradle task ‘assembleDebug’…&#xff0c;最后发现下载 kotlin-compiler-embeddable-7.1.0.jar 特别的缓慢。 运行环境 电脑系统版本&#xff1a;Windows 10 64bit VS Code&…

【Qt】环境安装与初识

目录 一、Qt背景介绍 二、搭建Qt开发环境 三、新建工程 四、Qt中的命名规范 五、Qt Creator中的快捷键 六、QWidget基础项目文件详解 6.1 .pro文件解析 6.2 widget.h文件解析 6.3 widget.cpp文件解析 6.4 widget.ui文件解析 6.5 main.cpp文件解析 七、对象树 八、…

垃圾分类|城市垃圾分类管理系统|基于Springboot的城市垃圾分类管理系统设计与实现(源码+数据库+文档)

城市垃圾分类管理系统目录 目录 基于Springboot的城市垃圾分类管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、垃圾列表 2、公告信息管理 3、公告类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 …

【王道数据结构】【chapter5树与二叉树】【P159t15】

设计一个算法将二叉树的叶结点从左到右的顺序连成一个单链表&#xff0c;表头指针为head。二叉树按二叉链表方式存储&#xff0c;链接时用叶结点的右指针来存放单链表指针。 #include <iostream> #include <stack> #include <queue> typedef struct treenode…

【AIGC】Stable Diffusion 的提示词入门

一、正向提示词和反向提示词 Stable Diffusion 中的提示词通常用于指导用户对生成的图像进行控制。这些提示词可以分为正向提示词&#xff08;Positive Prompts&#xff09;和反向提示词&#xff08;Negative Prompts&#xff09;两类&#xff0c;它们分别影响图像生成过程中的…

《春山》中的贝叶斯统计——白敬亭衣服合理概率及决策比重。

目录 1. 全身黑衣服合理概率2. 真的是导演组允许&#xff1f;3. 粉丝的证据是否站得住&#xff1f;4.总结 感谢up主链接: 【理工春山学】只谈事实 从统计角度深度剖析春山学&#xff0c;她使用贝叶斯统计合理分析了在舞台中白敬亭、双魏、导演组出错的概率。接下来我采用一个新…

继承树追溯

属性/方法查找顺序&#xff1a;&#xff08;比如&#xff1a;查找变量h&#xff09; 查找当前类中有没有属性h 依次上溯每个父类&#xff0c;查看每个父类中是否有h&#xff0c;直到Object 如果没找到&#xff0c;则出现编译错误 上面步骤&#xff0c;只要找到h变量&#xff0c…

吐血整理!操作系统【处理机调度】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;OS从基础到进阶 1 基本概念1.1 总览1.2 什么是调度1.2.1 调度1.2.2 处理机调度 1.3 调度的三个层次1.3.1 高级调度1.3.2 中级调度&#xff08;内存调度&#xff09;1.3.3 低级调度&#xf…

大模型爆款应用fabric_构建优雅的提示

项目地址&#xff1a;https://github.com/danielmiessler/fabric 1 引言 目前 fabric 已经获得了 5.3K Star&#xff0c;其中上周获得了 4.2K&#xff0c;成为了上周热榜的第二名&#xff08;第一名是免费手机看电视的 Android 工具&#xff09;&#xff0c;可以算是爆款应用…

v-model的原理

v-model是v-bind和v-on结合在一起的语法糖&#xff0c;是用于原生标签&#xff08;如input、textarea…&#xff09;和自定义组件上的一个简化包装。它本身并不会做出什么&#xff0c;只会将表单元素的值&#xff08;input/textarea等&#xff09;与数据对象进行双向绑定。v-mo…

【leetcode994】腐烂的橘子(BFS)

文章目录 一、题目二、思路三、代码 一、题目 二、思路 首先将所有烂橘子入队&#xff0c;然后常规BFS遍历&#xff0c;注意while的截止条件除了队列为空&#xff0c;新鲜橘子数量大于0&#xff08;没新鲜橘子也没必要继续遍历&#xff0c;保证时间计算的正确性&#xff09;&a…

哈希切分

目录 一 二 三 2.单个子文件太大怎么办&#xff1f;&#xff08;分两种情况讨论&#xff09; 一 这样的题目典型就是KV模型的问题&#xff0c;即通过key IP找对应的value 出现次数&#xff0c;对于KV模型的问题首先想到的就是用map来统计次数&#xff0c;但是100G大小的文件…

Docker 第十四章 : Docker 三剑客之 Machine

第十四章 : Docker 三剑客之 Machine 本章知识点: Docker Machine 是 Docker 三剑客之一,它是一个工具,允许用户在本地或远程机器上创建 Docker 主机。它简化了 Docker 环境的设置,特别是在不同的操作系统和云平台上。通过 Docker Machine,用户可以轻松地在虚拟机或物理…

基于四叉树的图像分割算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ........................................................... Imgs(dx 1 : dx R1, dy 1 …

Spring中的事务实现、失效场景即AOP的相关概念理解

spring实现事务&#xff08;声明式事务&#xff09;的本质就是aop完成的,它会对方法的前后进行拦截,在执行方法之前开启事务,在执行完目标方法之后根据执行情况提交或回滚事务。aop就是面向切面编程&#xff0c;在spring中将那些与业务无关&#xff0c;但却对多个对象产生影响的…

【硬核】javascript轻松实现自动化批量取消某音用户关注功能

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起学习和进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&a…

SQL世界之函数+语句(九,十)

目录 一、SQL 函数 1.函数的语法 2.函数的类型 1.合计函数&#xff08;Aggregate functions&#xff09; 2.Scalar 函数 二、SQL AVG 函数 1.AVG 函数 2.SQL AVG() 语法 3.SQL AVG() 实例 三、SQL COUNT() 函数 1.COUNT() 函数 2.SQL COUNT() 语法 3.SQL COUNT(co…

高程 | 继承与派生(c++)

文章目录 &#x1f4da;继承的概念和语法&#x1f4da;派生类生成过程&#x1f4da;继承权限和继承方式&#x1f407;公有继承&#x1f407;私有继承&#x1f407;保护继承 &#x1f4da;类型转换规则&#x1f4da;派生类构造函数和析构函数&#x1f4da;继承中的静态成员特性&…

Linux rp_filter、arp_filter、arp_ignore、arp_announce参数说明

Linux rp_filter、arp_filter、arp_ignore、arp_announce参数说明。我查看了参考资料&#xff0c;又去查阅了官方文档&#xff0c;凭着我的理解整理了以下文档。各位大神的文档写的很好&#xff0c;但都不喜欢断句啊&#xff0c;读的我这叫一个累。 参考 1.网络编程之网络丢包…

poetry,一个超实用的 Python 库!

文章目录 什么是 Python Poetry&#xff1f;安装 Python PoetryPython Poetry 的主要特性1. 简洁易用的依赖定义2. 虚拟环境管理3. 依赖解析和锁定4. 包管理和发布 使用 Python Poetry 管理项目依赖1. 创建新项目2. 添加依赖3. 安装依赖4. 移除依赖5. 更新依赖6. 查看当前依赖列…