c++反转链表中m位置到n位置的元素_环形数组最大子数组

c++反转链表中m位置到n位置的元素_环形数组最大子数组原题链接给定一个由整数数组 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.leng

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原题链接
给定一个由整数数组 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

题解
求前缀和,对于每一个j,找到[j – k,j)中最小的sj,所以可以想到使用滑动窗口求解。

class Solution { 
   
public:
    const int INF = 0x3f3f3f3f;
    int maxSubarraySumCircular(vector<int>& A) { 
   
    vector<int>sum(2 * A.size() + 10);
    int k = A.size();
    sum[0] = 0;
    for(int i = 1;i <= 2 * k - 1;i ++){ 
   
        sum[i] = A[(i - 1) % A.size()] + sum[i - 1];
    }
    int res = -INF;
    deque<int>dp;
    for(int i = 0;i < 2 * k - 1;i ++){ 
   
        if(!dp.empty() && i - dp.front() == k)dp.pop_front();
        while(!dp.empty() && sum[dp.back()] >= sum[i])dp.pop_back();
        dp.push_back(i);
        if(i >= k - 1)res = max(res,sum[i + 1] - sum[dp.front()]);
    }
    return res;
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168994.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月9日 上午8:00
下一篇 2022年8月9日 上午8:16


相关推荐

  • SIGTERM和SIGINT的含义

    SIGTERM和SIGINT的含义SIGHUP nbsp nbsp nbsp nbsp 终止进程 nbsp nbsp nbsp nbsp 终端线路挂断 SIGINT nbsp nbsp nbsp nbsp 终止进程 nbsp nbsp nbsp nbsp 中断进程 SIGQUIT nbsp nbsp 建立 CORE 文件终止进程 并且生成 core 文件 SIGILL nbsp nbsp 建立 CORE 文件 nbsp nbsp nbsp nbsp nbsp nbsp 非法指令 SIGTRAP nbsp nbsp 建立 CORE 文件 nbsp nbsp nbsp nbsp nbsp nbsp 跟踪自陷 SIGBUS nbsp nbsp 建立 CORE 文件 nbsp nbsp nbsp nbsp nbsp nbsp 总线错误 SIGSEGV nbsp nbsp 建立 CORE 文件 nbsp nbsp

    2026年3月16日
    3
  • JavaSE和JavaEE的区别

    JavaSE和JavaEE的区别JavaSE 和 JavaEE 的区别 JavaEE JavaEnterpri Java 企业版 多用于企业级开发 包括 web 开发等等 企业版本帮助开发和部署可移植 健壮 可伸缩切安全的服务端 Java 应用 JavaEE 是在 JavaSE 的基础上构建的他提供 Web 服务 组建模型 管理和通信 API 可以用来实现企业级的面向服务体系结构 service orientedarch

    2026年3月19日
    2
  • 即梦AI怎么注册?国内无翻墙轻松注册使用教程

    即梦AI怎么注册?国内无翻墙轻松注册使用教程

    2026年3月12日
    2
  • 面对ONF挑衅 思科用ACI回绝SDN挑战

    面对ONF挑衅 思科用ACI回绝SDN挑战ONF 成员曾经都说 SDN 能够解决的网络架构问题是思科的一道坎 甚至很多初创企业都渴望通过 SDN 变革崭露头角 面对挑衅思科很快推出了新的解决方案 看思科 ACI 如何解决当前网络局限性 思科 ACI 可以解决 ONF 白皮书中列出的所有传统网络局限性 思科 ACI 解决了这些局限性 复杂性 思科 ACI 消除了网络的复杂性 通过允许网络路由和交换完全分布在整个架构

    2026年3月17日
    2
  • PXE启动服务器及客户端镜像制作

    PXE启动服务器及客户端镜像制作基于CentOS6的PXE无盘系统制作,包含服务器端必要服务的设置开启,客户端镜像文件系统,根文件系统的制作,PXE选单的制作.

    2022年6月17日
    83
  • PHP 数据类型

    PHP 数据类型

    2021年9月12日
    70

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号