计蒜客 和谐--dp

 

 

题解:

这题和leetcode的最大子段和思路差不多,只是在最大子段和的基础上变了点形,可以先网上看下最大子段和的题解,然后这题应该就能大致知道怎么做了。

先处理数组,取相邻2个数的绝对值,然后分2种情况,从奇数点或者偶数点开始计算。具体思路见代码。

另一种做法是动态规划,求2个dp数组,表示从i开始的最大/最小和谐度,然后dp一遍即可

 

 

#include <cstdio>
#include <cstring>
#include <algorithm>
#define MAXN 1000010
using namespace std;
typedef long long ll;

ll a[MAXN];
ll res = 0;
int n;


int main() {
    scanf("%d", &n);
    for(int i = 0;i < n;i++) {
        scanf("%lld", &a[i]);
    }
    if(n == 1) {
        printf("%d\n",0);
        return 0;
    }
    n--;
    for(int i = 0;i < n;i++) {
        a[i] = abs(a[i+1]-a[i]);
    } 
    
    bool flag = true;//到了正数的地方
    res = max(res,a[0]);
    ll Max = a[0];
    for(int i = 1;i < n;i++) {
        flag = !flag;
        if(!flag) {
            // 当前是减
            Max -= a[i];
            if(Max <= 0) {
                // 重置
                Max = 0;
            }
        } else {
            res = max(res, Max+a[i]);
            Max += a[i];
        }
    }
    
    if(n==1) {
        printf("%lld\n",a[0]);
        return 0;
    }
    
    flag = true;//到了正数的地方
    res = max(res,a[1]);
    Max = a[1];
    for(int i = 2;i < n;i++) {
        flag = !flag;
        if(!flag) {
            // 当前是减
            Max -= a[i];
            if(Max <= 0) {
                // 重置
                Max = 0;
            }
        } else {
            res = max(res, Max+a[i]);
            Max += a[i];
        }
    }
    
    
    printf("%lld\n", res);



    return 0;
} 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《VMware vSAN 超融合技术规划与部署》课程共分为“上集”和“下集”两部分,本套视频为“下集”部分,接续“上集”知识,是vSAN技术进阶推荐课程。  《VMware vSAN 超融合技术规划与部署》“下集”部分具体课程章节如下。  第1章 《使用延伸群集将数据存储扩展到两个站点》主要内容本章主要讲解了vSAN延伸群集的相关理论及构建vSAN延伸群集的方法。通过本章学习,您可以掌握延伸群集的设注意事项和推荐做法;掌握使用快速入门功能配置延伸群集的方法;掌握手动配置延伸群集的方法;掌握将延伸群集更改为标准群集的方法。  第2章 《vSAN延伸群集策略》主要内容本章主要讲解了vSAN延伸群集中的虚拟机存储策略。通过本章学习,您可以理解允许的故障数主要级别 (PFTT)含意;理解允许的故障数辅助级别 (SFTT)含意;通过试验进一步理解PFTT和SFTT含意;掌握将VM放置在首xuan站点和辅助站点操作过程。  第3章 《管理 vSAN 群集中的故障域》主要内容本章主要讲解了vSAN群集中的故障域相关理论和实践知识。通过本章学习,您可以了解故障域的设思想;掌握在 vSAN 群集中创建新的故障域的操作方法;掌握将主机移出故障域的操作方法;掌握将主机移至选定的故障域的操作方法;掌握重命名故障域的操作方法;掌握移除选定的故障域的操作方法。  第4章 《管理 vSAN 群集》主要内容本章主要讲解了管理vSAN群集相关知识。通过本章学习,您可以理解什么是维护模式;掌握使用维护模式的操作方法;掌握将混合 vSAN 群集迁移到全闪存群集操作方法;掌握关闭 vSAN 群集电源的方法。  第5章 《使用 vSAN iSCSI 目标服务》主要内容本章主要讲解了在vSAN环境中配置iSCSI目标服务,以把vSAN数据存储提供给外部用户使用。通过本章学习,您可以掌握vSAN iSCSI 目标服务的设思想;学会创建vSAN iSCSI 目标服务;学会使用户端连接vSAN iSCSI 目标服务;掌握vSAN iSCSI 目标服务的使用方法。  第6章 《vSAN 群集中的设备管理》主要内容本章主要讲解了vSAN 群集中的设备(缓存盘和容量盘)管理。通过本章学习,您可以学会将设备添加到磁盘组的操作方法;学会从 vSAN 移除磁盘组或设备的操作方法;学会重新创建磁盘组的操作方法;学会使用定位符 LED的操作方法;学会将设备标记为闪存的操作方法;学会将设备标记为 HDD的操作方法;学会添加容量设备的操作方法;学会从设备移除分区的操作方法。  第7章 《提高 vSAN 群集中的空间效率》主要内容本章主要讲解了提高 vSAN 群集中的空间效率相关知识。通过本章学习,您可以了解vSAN 空间效率理论知识;掌握使用去重和压缩的操作方法;了解RAID 5 或 RAID 6 删除编码;了解RAID 5 或 RAID 6 设注意事项。  第8章 《vSAN监控》主要内容本章主要讲解了vSAN监控相关知识。通过本章学习,您可以掌握监控 vSAN 群集的操作方法;掌握监控 vSAN 运行状况的操作方法;掌握监控 vSAN 性能的操作方法。  VMware vSAN 6.7 超融合技术规划与部署(上集):https://edu.csdn.net/course/detail/35188VMware vSAN 6.7 超融合技术规划与部署(下集):https://edu.csdn.net/course/detail/35191

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值