918. 环形子数组的最大和

2023-11-19

918. 环形子数组的最大和

难度中等192

给定一个由整数数组 A 表示的环形数组 C,求 C 的非空子数组的最大可能和。

在此处,环形数组意味着数组的末端将会与开头相连呈环状。(形式上,当0 <= i < A.length 时 C[i] = A[i],且当 i >= 0 时 C[i+A.length] = C[i]

此外,子数组最多只能包含固定缓冲区 A 中的每个元素一次。(形式上,对于子数组 C[i], C[i+1], ..., C[j],不存在 i <= k1, k2 <= j 其中 k1 % A.length = k2 % A.length

示例 1:

输入:[1,-2,3,-2]
输出:3
解释:从子数组 [3] 得到最大和 3

示例 2:

输入:[5,-3,5]
输出:10
解释:从子数组 [5,5] 得到最大和 5 + 5 = 10

示例 3:

输入:[3,-1,2,-1]
输出:4
解释:从子数组 [2,-1,3] 得到最大和 2 + (-1) + 3 = 4

示例 4:

输入:[3,-2,2,-3]
输出:3
解释:从子数组 [3] 和 [3,-2,2] 都可以得到最大和 3

示例 5:

输入:[-2,-3,-1]
输出:-1
解释:从子数组 [-1] 得到最大和 -1

提示:

  1. -30000 <= A[i] <= 30000
  2. 1 <= A.length <= 30000

这题感觉还蛮有意思的

从LT53题的变种题,分为两种方向,一个是最大子序列包括环,另一种是没有包括环,也就和53题一样

第一种包括了环,说明子序列里面肯定有A[0]和A[n-1],然后只需要求出1到n-2的最小值,用总和减去最小值,就是当前经过A[0]和A[n-1]的最大值

class Solution {
public:
    int maxSubarraySumCircular(vector<int>& nums) {
        int cnt = 0;
        int maxn = nums[0],sum = 0;
        for(int i = 0;i < nums.size();i++){
            sum += nums[i];
            if(cnt < 0) cnt = nums[i];
            else cnt += nums[i];
            maxn = max(cnt,maxn);
        }
        int minn = nums[0];
        cnt = 0;
        for(int i = 1;i < nums.size() - 1;i++){
            if(cnt > 0) cnt = nums[i];
            else cnt += nums[i];
            minn = min(cnt,minn);
        }
        if(maxn < 0) return maxn;
        return max(maxn,sum - minn);
    }
};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

918. 环形子数组的最大和 的相关文章

  • MATLAB指纹识别系统[GUI,预警]

    一 课题介绍 随着生物识别技术的不断发展 人们发现每个人的指纹具有唯一性和不变性 因此指纹识别技术逐步发展为一种新的身份识别方式 并且凭借其良好的安全可靠性 大有取代传统身份识别方式的趋势 本文简要介绍了指纹识别的基本步骤 分别是指纹图像预
  • scala扁平化

    扁平化 将嵌套列表中的所有元素单独放到一个新列表中 嵌套列表 列表中元素均为列表的列表称之为嵌套列表 object 扁平化 def main args Array String Unit 嵌套列表 val list1 List List 1

随机推荐

  • 字节跳动(今日头条)小程序支付、支付宝、微信支付完整版

    字节跳动 今日头条 小程序支付 开通支付 官方参数组装 小程序代码 服务端 支付宝支付 微信H5支付 支付宝回调 微信H5支付回调 开通支付 开通支付就不做说明了 请直接查看官方文档 https microapp bytedance com
  • Maven pom.xml报错Multiple annotations found at this line: - Missing artifact log4j:log4j:jar:1.2.15:co

    Maven pom xml 报错 Multiple annotationsfound at this line Missing artifactlog4j log4j jar 1 2 15 compile Missing artifacto
  • jsp+Echarts实现图表可视化,连接数据库,从数据库拿数据

    实现可视化的图表 jsp mysql eclipse 从数据库拿数据改变表格的数据算是echarts的初始入门案例的升级版 想了解Echarts的各位大大 传送门 https echarts apache org examples zh e
  • Netty 4.0 实现心跳检测和断线重连

    一 实现心跳检测 原理 当服务端每隔一段时间就会向客户端发送心跳包 客户端收到心跳包后同样也会回一个心跳包给服务端 一般情况下 客户端与服务端在指定时间内没有任何读写请求 就会认为连接是idle 空闲的 的 此时 客户端需要向服务端发送心跳
  • python安装robotframework报错_荐Win10+python3.8+robot framework安装及遇见的问题

    前提 自己已经下载装好了Python3 x 下面是我逐步尝试搜索后出现的各类爆粗信息和截图 现在已经最后正确的方法汇总到文章前面 方便自取 Windows10系统 操作均在cmd命令行窗口内进行 1 装pip python m pip in
  • 【转】protoc-go-inject-tag 作用

    时间 2022 03 01 本文章向大家介绍 转 protoc go inject tag 作用 主要包括 转 protoc go inject tag 作用使用实例 应用技巧 基本知识点总结和需要注意事项 具有一定的参考价值 需要的朋友可
  • window10在vscode中配置conda出错解决办法

    Windows 10 VSCode激活conda虚拟环境失败解决方案 CommandNotFoundError Your shell has not been 码农家园
  • VS 2022使用报错(一)

    1 NET框架不兼容 发生背景 博主最近打开同事的源代码发现许多引用都无效了 中间我尝试删除了这些引用 在重新添加引用的时候都找不到这些了 最后发现是解决方案里面没有配置 NET框架 问题解决 配置 NET框架 右键项目属性 在目标框架里面
  • python搭建ip池(多线程)

    之前有讲过怎么搭建ip池 但由于单线程的效率太低 于是我们升级改造一下 将单线程变成多线程来搭建ip池 之前的方法可以参考一下 python搭建ip池 如果会简单的request和提取文字就可以直接不看 本文将会重点放在多线程的部分 过程分
  • 微软个人云端服务器在哪里找,云端的服务器在哪里

    云端的服务器在哪里 内容精选 换一换 智能边缘平台 Intelligent EdgeFabric 通过纳管用户的边缘节点 提供将云上应用延伸到边缘的能力 联动边缘和云端的数据 同时 在云端提供统一的边缘节点 应用监控 日志采集等运维能力 为
  • python基础:面向对象一些简单案例:计算圆的面积和周长,烤羊肉串

    1 计算圆的面积和周长 from math import pi class Circle def init self r self r r def zhouchang self return 2 pi self r def area sel
  • shell编程计算1-1000中所有3或5的倍数之和

    bin bash sum 0 int 1 while int lt 1000 do if int 3 0 int 5 0 then sum sum int fi let int done echo sum bin bash sum 0 fo
  • Spring Security 自定义用户认证

    一 PasswordEncoder 在 Configuration注解的类下注入bean import org springframework security crypto bcrypt BCryptPasswordEncoder imp
  • C++ 数据类型

    使用编程语言进行编程时 需要用到各种变量来存储各种信息 变量保留的是它所存储的值的内存位置 这意味着 当创建一个变量时 就会在内存中保留一些空间 可能需要存储各种数据类型 比如字符型 宽字符型 整型 浮点型 双浮点型 布尔型等 的信息 操作
  • AI绘图实战(六):制作一张庆祝五一劳动节的海报

    S AI能取代设计师么 I 至少在设计行业 目前AI扮演的主要角色还是超级工具 要顶替 除非甲方对设计效果无所畏惧 预先学习 安装及其问题解决参考 Windows安装Stable Diffusion WebUI及问题解决记录 运行使用时问题
  • JUMPSERVER+ZABBIX二次开发

    未完待续 1 apps assets models assets py 添加字段 zabbix group id models IntegerField null True blank True verbose name Zabbix Gr
  • Rust对文件的操作

    一 文件IO操作 在类unix系统中 一切都是文件 所以说广义的文件操作 其实包括很多 Socket 管道 内存映射等等 其实文件操作无论怎么变化 主流仍然是对外设的访问 计算机本身的组成 是一系列的硬件整合在一起的 单纯的只有CPU和内存
  • WSL 2是什么

    Windows Subsystem for Linux WSL 适用于 Linux 的 Windows 子系统是微软在Windows 10上提供的一项供用户快速运行Linux命令和工具的功能 相比前一代的WSL WSL 2提供更全的兼容性
  • 【vue2】vue2中引入jquery

    文章目录 安装 main js中引用 修改webpack配置 把以下三步做好 就不会出现 jquery is not define 的问题了 安装 npm i jquery S main js中引用 import from jquery V
  • 918. 环形子数组的最大和

    918 环形子数组的最大和 难度中等192 给定一个由整数数组 A 表示的环形数组 C 求 C 的非空子数组的最大可能和 在此处 环形数组意味着数组的末端将会与开头相连呈环状 形式上 当0 lt i lt A length 时 C i A