首页 > 其他分享 >LeetCode -- 918. 环形子数组的最大和

LeetCode -- 918. 环形子数组的最大和

时间:2023-07-12 11:44:14浏览次数:38  
标签:nums -- sum maxv int 918 数组 LeetCode minv

 遇到环形问题一般有两种考虑方法:

    1.破环成链

    2.分为数组中间部分和数组两边部分分别考虑

本题采用第二种考虑方法,将原数组分为中间部分和两边部分分别考虑。中间部分即为子数组最大和,两边部分计总和减去中间部分最小和。

class Solution {
public:
    int maxSubarraySumCircular(vector<int>& nums) {
        int n= nums.size();
        int sum = nums[0];
        vector<int> f(nums);
        vector<int> g(nums);

        for(int i = 1; i < n; i ++ ) {
            f[i] = max(nums[i], f[i - 1] + nums[i]);
            g[i] = min(nums[i], g[i - 1] + nums[i]);
            sum += nums[i];
        }

        int maxv = *max_element(f.begin(), f.end());
        int minv = *min_element(g.begin(), g.end());

        return max(maxv, sum - minv == 0 ? maxv: sum - minv);

    }
};

 

标签:nums,--,sum,maxv,int,918,数组,LeetCode,minv
From: https://www.cnblogs.com/zk6696/p/17547117.html

相关文章

  • sharding-jdbc分库连接数优化
    一.背景:配运平台组的快递订单履约中心(cp-eofc)及物流平台履约中心(jdl-uep-ofc)系统都使用了ShardingSphere生态的sharding-jdbc作为分库分表中间件,整个集群采用只分库不分表的设计,共16个MYSQL实例,每个实例有32个库,集群共512个库.当每增加一台客户端主机,一个MYSQl实例最......
  • C# 关于datetime的转换问题
    项目中时常碰到 Convert.ToDateTime报错的情况例如:数据导入时,如果用户胡乱输入,就会出现异常报错。 解决方式:stringinputDate="2023-7-12";DateTimedate=newDateTime();if(DateTime.TryParse(inputDate,outdate)){date=Convert.ToDateTime(inputD......
  • win10文件异地备份
    1、依次打开控制面板—管理工具—任务计划程序。2、依次点击展开任务计划程序库—Microsoft—Windows—WindowsBackup。  3、在右侧窗口空白处点击右键,在弹出的菜单中点击新建任务。 4、根据提示输入计划的名称和描述。 5、点击触发器选项卡,在下方点击新建,在弹出的窗......
  • Prettier 配置指南 .prettierrc.json 文件配置指南
    1.在项目根目录下面,新建.prettierrc.json文件2.prettuer配置{"printWidth":100,"tabWidth":2,"useTabs":true,"semi":true,"singleQuote":true,"trailingComma":"none","b......
  • 报错知识库
    1.python项目部署报错pthread_createfailedforthread13of48:Resourcetemporarilyunavailable报错说明:线程数不够1)排错过程:ulimit-a查看docker基础镜像其中openfiles为一个任务打开的最大进程数maxuserprocesses为当前用户同时打开的最大进程数,(-u)unlimited为......
  • Visual C# 中XML注释换行
    只需将<para>标记用于诸如<summary>、<remarks>或<returns>等标记内即可 ///<summary>///基类(第1行)///<para>说明:(第2行)</para>///<para>封装一些常用的成员(第3行)</para>///<para>前面要用全角空格才能显示出空格来(第4行)</para>///</s......
  • API协作难?沟通效率低?试试一体化研发协作平台Apipost
    API管理中存在:API在线异常的发现、跟踪和解决流程过长,信息沟通效率低以及协作难的问题,跟大家分享一个非常棒的解决方案~01.痛点场景在团队协作开发和API管理过程中,API接口变更频繁、变更信息得不到及时同步且同步后沟通效率低,各个环节人员处理问题节奏不统一等等,都是在API开发中......
  • 为什么更推荐测试人员使用「测试平台」RunnerGo
    互联网行业的发展至今,越来越多的公司注重工作效率和团队协作。同时,产品也趋于平台化,这有助于提高团队效率。代码管理、持续构建和持续部署等工具的发展相当先进,它们明显地支持团队协作并提高工作效率。然而,与之相比,测试工具的发展显得滞后。传统的测试工具(如jmeter和loadrunner)......
  • 高等数学——求导法则
    求导法则和差积商\[[u(x)\pmv(x)]'=u'(x)\pmv'(x)\]\[[u(x)\cdotv(x)]'=u'(x)v(x)+u(x)v'(x)\]\[[\frac{u(x)}{v(x)}]=\frac{u'(x)v(x)-u(x)v'(x)}{v^{2}(x)}(v(x)\ne0)\]\[[u(x)v(x)w(x)]'=u(x)'v(x)w(x)+u......
  • 「解题报告」Codeforces Round #884 (Div. 1 + Div. 2) Editorial
    比赛地址:Dashboard-CodeforcesRound884(Div.1+Div.2)-Codeforces个人评价:这场是构造专场!A.SubtractionGameProblem-A-Codeforces有一堆石子(应该是石子),每次只能拿走\(a\)块或者\(b\)块,最先不能移动的人输,构造一个数\(n\),使得先手必输。两种构造方法:......