【每日算法】动态规划五

Java50

难度[中等]

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

&#x5728;&#x6B64;&#x5904;&#xFF0C;&#x73AF;&#x5F62;&#x6570;&#x7EC4;&#x610F;&#x5473;&#x7740;&#x6570;&#x7EC4;&#x7684;&#x672B;&#x7AEF;&#x5C06;&#x4F1A;&#x4E0E;&#x5F00;&#x5934;&#x76F8;&#x8FDE;&#x5448;&#x73AF;&#x72B6;&#x3002;&#xFF08;&#x5F62;&#x5F0F;&#x4E0A;&#xFF0C;&#x5F53;0 <= i < a.length 时 c[i]="A[i]&#xFF0C;&#x4E14;&#x5F53;&#xA0;i">= 0&#xA0;&#x65F6;&#xA0;C[i+A.length] = C[i]&#xFF09;

&#x6B64;&#x5916;&#xFF0C;&#x5B50;&#x6570;&#x7EC4;&#x6700;&#x591A;&#x53EA;&#x80FD;&#x5305;&#x542B;&#x56FA;&#x5B9A;&#x7F13;&#x51B2;&#x533A; A&#xA0;&#x4E2D;&#x7684;&#x6BCF;&#x4E2A;&#x5143;&#x7D20;&#x4E00;&#x6B21;&#x3002;&#xFF08;&#x5F62;&#x5F0F;&#x4E0A;&#xFF0C;&#x5BF9;&#x4E8E;&#x5B50;&#x6570;&#x7EC4;&#xA0;C[i], C[i+1], ..., C[j]&#xFF0C;&#x4E0D;&#x5B58;&#x5728;&#xA0;i <= 2 3 5 k1, k2 <="j&#xA0;&#x5176;&#x4E2D;&#xA0;k1" % a.length ="k2" a.length)   示例 1: 输入:[1,-2,3,-2] 输出:3 解释:从子数组 [3] 得到最大和 2: 输入:[5,-3,5] 输出:10 [5,5] + 3: 输入:[3,-1,2,-1] 输出:4 [2,-1,3] (-1) 4: 输入:[3,-2,2,-3] 和 [3,-2,2] 都可以得到最大和 5: 输入:[-2,-3,-1] 输出:-1 [-1] -1 code></=></=>

分两种情况:

  1. 无环的情况
    此时和数组最大子序列和的解法一样。
  2. 有环的情况
    为了使第一个和最后一个子区间的和尽可能大,中间子区间的和应该尽可能小,然后从数组的和中减去最小序列的和,这是第一个和最后一个子区间的最大值。

    [En]

    To make the sum of the first and last subintervals as large as possible, the sum of the middle subintervals should be as small as possible, and then subtract the sum of the smallest sequence from the sum of the array, which is the maximum of the first and last subintervals.

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Java

内部类(Java)

基本介绍 概念:在一个类的内部再定义一个完整类 特点:编译后可以生成独立的字节码文件;内部类可以直接访问外部类的私有属性,而不破坏封装[En]Features: Independent bytecod...
Java

Java基础学习总结

写的这个博客是学习B站狂神说的Java教学视频的学习记录,记录了重点知识以及以前易混淆理解的知识点。本博客可能缺少部分基础知识点,适合像我一样学习Java过程中曾经半途而废的学生。 Java的注释分为...
Java

google和oracle闹掰,Java 会不会被抛弃?

眼花缭乱的编程语言 程序界的语言实在太多,但有一种语言不得不说,那就是java语言,Java语言是Android系统的主要开发语言,现在和Google的关系不是很好,但是他会被淘汰吗?下面简单地分析一...
Java

mybatis-延迟加载

本文主要介绍下mybatis的延迟加载,从原理上介绍下怎么使用、有什么好处能规避什么问题。延迟加载一般用于级联查询(级联查询可以将主表不能直接查询的数据使用自定义映射规则调用字表来查,主查询查完之后通...
Java

一文带你搞懂 JWT 常见概念 & 优缺点

在 JWT 基本概念详解这篇文章中,我介绍了: 什么是 JWT? JWT 由哪些部分组成? 如何基于 JWT 进行身份验证? JWT 如何防止 Token 被篡改? 如何加强 JWT 的安全性? 这篇...
Java

Dubbo实战教程

"Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。" RPC翻译过来叫做...
Java

Java使用 Thumbnails 压缩图片

业务:用户上传一张图片到文件站,需要返回原图url和缩略图url 处理思路: 因为上传图片方法返回url是单个上传,第一步先上传原图并返回url 处理缩略图并上传:拿到MultipartFile压缩成...
Java

Java 15 新特性:隐藏类

什么是隐藏类 隐藏类是不能由其他类直接使用的类。引入隐藏类的主要目的是供框架使用,以便框架可以在运行时生成类,并通过反射间接使用它们。这可能有点抽象,不要紧,让我们用一个例子直观地理解它![En]A ...
Java

我的 web 前端开发技术选择

不使用 mvvm 之类的前端组件,是因为我觉得没有必要。 mvvm 常见的宣传,对我来说没什么吸引力,反而增加了技术的复杂度。 一、Javascript 操作 DOM 慢。我不觉得慢。 二、Javas...
Java

RabbitMQ 环境安装

每日一句 Wisdom is knowing what to do next, skill is knowing how to do it, and virtue is doing it. 智慧是知道...
Java

原来我还有网络天赋

问题 如下图,之前公司有10多台服务器,都设置成了静态IP,因为现在更换成了类似IP为192.168.1.X 的1网段,看着下面的服务器,修改IP简单,但想想服务器里面还有许多配置需要随着IP一起修改...
Java

MySQL学习-eclipse导入jar包

导包先有包 !!!一定要下载和自己MySQL版本一样的jar包!!! !!!一定要下载和自己MySQL版本一样的jar包!!! !!!一定要下载和自己MySQL版本一样的jar包!!! 如果没有包,参...
Java

Java学习 (25) 对象篇(05)抽象类&接口

抽象类 - 语法实例 注意点 具体讲解视频(狂神说Java) 接口 - 语法实例 具体讲解视频(狂神说Java) 抽象类 abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就...