2023-07-11力扣每日一题

链接:

https://leetcode.cn/problems/maximum-alternating-subsequence-sum/

题意:

给定一个数组,求一个子序列,使这个子序列的奇数位和-偶数位和最大(下标从1开始的话|反正第一个数是+)

解:

找下坡,曲折处两个分下坡大于一个总下坡(如图)

在这里插入图片描述

实际代码:

思维:

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
typedef long long int ll;
const int Nmax=1E5+7;
long long maxAlternatingSum(vector<int>& nums)
{
    ll ans=0;bool zt=1;int temp=nums[0];
    
    for(int i=1;i<nums.size();i++)
    {
      
        if(zt && nums[i]<nums[i-1]) zt=0;
        
        if(!zt && nums[i]>nums[i-1])
        {
            ans+=temp-nums[i-1];
            zt=1;temp=nums[i];
        }
        
        temp=max(temp,nums[i]);
    }
    return ans+temp;
}
int main()
{
    vector<int> nums;
    int n;cin>>n;
    
    for(int f=1;f<=n;f++)
    {
        int temp;cin>>temp;
        nums.push_back(temp);
    }
    
    ll ans=maxAlternatingSum(nums);
    cout<<ans<<endl;
}

DP?:

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
typedef long long int ll;
const int Nmax=1E5+7;
long long maxAlternatingSum(vector<int>& nums)
{
    ll A1=0,A2=0;//最后一位+ 最后一位- 
    
    int lg=nums.size();
    for(int i=0;i<lg;i++)
    {
        A1=max(A2+nums[i],A1);
        if(i!=0) A2=max(A1-nums[i],A2); 
    }
    return max(A1,A2);
}
int main()
{
    vector<int> nums;
    int n;cin>>n;
    
    for(int f=1;f<=n;f++)
    {
        int temp;cin>>temp;
        nums.push_back(temp);
    }
    
    ll ans=maxAlternatingSum(nums);
    cout<<ans<<endl;
}

限制:

  • 1 <= nums.length <= 105
  • 1 <= nums[i] <= 105

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/37105.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【STM32MP135】修复10.1寸屏显示异色问题,添加极性配置

文件路径&#xff1a;u-boot-stm32mp-v2021.10-stm32mp1-r1/drivers/video/stm32/stm32_ltdc.c

Microsoft 宣布今年底关闭开源软件托管平台 CodePlex

Microsoft 宣布&#xff0c;将关闭开源软件托管平台 CodePlex。Microsoft 2006 年推出这项服务&#xff0c;并决定在今年 12 月 15 日将其关闭。 Microsoft 公司副总裁 Brian Harry 在网上博客中写道&#xff0c;人们将可以下载他们的数据档案&#xff0c;Microsoft 正与面向开…

使用C语言连接MySQL

目录 一、引入库 1.1 下载库文件 1.2 在项目中引入库 二、使用库 2.1 连接数据库 2.2 SQL请求 2.3 获取查询结果 2.4 使用案例 一、引入库 1.1 下载库文件 要使用C语言连接MySQL&#xff0c;需使用MySQL官网提供的库 MySQL :: Download Connector/Chttps://dev.mysq…

Django学习笔记

记个笔记 使用Django时使用python3.9创建app时没有响应 使用如下指令&#xff1a; python manage.py startapp app名字 原因&#xff1a; windows使用python运行时指令不是python3.9... 此外启动项目也是&#xff1a; python manage.py runserver 2023.7.8 使用Django链接…

计算机系统结构与操作系统实验三(4-2)-启动分页机制

&#x1f4cd;实验要求 在开启分页后&#xff0c;显示提示如“V-zhangsan” 用命令info tab查看虚拟地址向物理地址的映射情况 用命令creg显示控制位中PG页式是否开启 &#x1f4cd;实验过程 创建文件 &#x1f4cd;&#x1f4cd;mbr.S ;主引导程序 ;------------------…

大数据ETL工具对比(Sqoop, DataX, Kettle)

前言 在实习过程中&#xff0c;遇到了数据库迁移项目&#xff0c;对于数据仓库&#xff0c;大数据集成类应用&#xff0c;通常会采用ETL工具辅助完成&#xff0c;公司和客户使用的比较多的是Sqoop, DataX和Kettle这三种工具。简单的对这三种ETL工具进行一次梳理。 ETL工具&…

Day2 图连通

A - PRO-Professor Szu 简单的来说就是 缩点、反图拓扑。 需要注意不与 n 1 n1 n1 联通的点可能会使得一些点的入度无法为 0 而无法入队&#xff0c;消除这些点的影响即可。 当时写的&#xff1a; D - BLO-Blockade 非割点&#xff1a; 2 ( n − 1 ) 2(n-1) 2(n−1)。 …

数据库主从同步

目录 一、准备工作1.1 安装或关闭以下服务1.2 本次安装环境 2、主数据库配置2.1主数据库配置2.2创建用户2.3查看信息 三、从主数据库配置3.1从数据库配置3.2连接主服务器3.3测试 4、其他4.1连接完毕后发现Slave_IO_Running值异常&#xff0c;4.2报错Error connecting to source…

Coggle 30 Days of ML (23年7月)任务二:数据可视化

Coggle 30 Days of ML (23年7月&#xff09;任务二&#xff1a;数据可视化 任务二&#xff1a;对数据集字符进行可视化&#xff0c;统计标签和字符分布 说明&#xff1a;在这个任务中&#xff0c;需要使用Pandas库对数据集的字符进行可视化&#xff0c;并统计数据集中的标签和…

深入了解C语言中scanf()函数的用法

目录 正文 一、基本用法 二、格式化字符串 三、多个输入值 四、错误处理 五、总结 正文 在C语言中&#xff0c;scanf()函数是一个非常有用的输入函数&#xff0c;它允许我们从用户那里获取输入&#xff0c;并将输入存储到指定的变量中。本文将详细介绍scanf()函数的使用方…

基于单片机停车场刷卡收费的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;通过液晶显示当前时间&#xff0c;车位、剩余车位、时间等信息&#xff1b;进电机正反转表示开关门&#xff1b;按键可以设置当前时间/单价/分钟&#xff1b;RC522射频卡识别&#xff0c;当刷卡后模拟汽车驶入&#xff0c;开始收费…

驱动开发-day10

驱动代码&#xff1a; #include <linux/cdev.h> #include <linux/device.h> #include <linux/fs.h> #include <linux/gpio.h> #include <linux/init.h> #include <linux/interrupt.h> #include <linux/mod_devicetable.h> #include …

OpenCV 入门教程:轮廓特征和轮廓匹配

OpenCV 入门教程&#xff1a;轮廓特征和轮廓匹配 导语一、轮廓特征二、轮廓匹配三、示例应用3.1 目标识别3.2 形状分析 总结 导语 轮廓特征和轮廓匹配是图像处理中用于描述和比较轮廓的技术。通过提取轮廓的形状、面积、周长等特征&#xff0c;并进行比较和匹配&#xff0c;我…

Python+Requests+Excel接口测试实战

1、EXCEL文件接口保存方式&#xff0c;如图。 2、然后就是读取EXCEL文件中的数据方法&#xff0c;如下&#xff1a; 1 import xlrd2 3 4 class readExcel(object):5 def __init__(self, path):6 self.path path7 8 property9 def getSheet(self): 10 …

flutter开发实战-Running Gradle task ‘assembleDebug‘ 的解决方法

flutter开发实战-Running Gradle task ‘assembleDebug‘ 的解决方法 使用Android studio经常出现Running Gradle task ‘assembleDebug‘问题&#xff0c;记录一下解决方法。 一、在Android目录下更改build.gradle 将repositories中的google(), mavenCentral() repositori…

从钢铁行业数字化管控平台的智能进化,看超自动化能力边界

文/王吉伟 钢铁行业的数字化转型&#xff0c;历来都是值得探讨的热点话题。 2022年&#xff0c;我国粗钢产量10.13亿吨&#xff0c;占据了全球钢铁供给市场的半壁江山。 这组数据可谓非常抢眼&#xff0c;但仍旧难掩诸多企业的各种经营问题。 钢铁生产过程工序众多&#xf…

计算机网络-网络层上篇

目录 一、网络层概述 二、网络层提供的两种服务 &#xff08;一&#xff09;面向连接的虚电路服务 &#xff08;二&#xff09;无连接的数据报服务 &#xff08;三&#xff09;虚电路服务与数据报服务的比较 三、IPv4地址及其应用 &#xff08;一&#xff09;IPv4地址概…

python中的生成器(generator)

一、生成器 生成器是 Python 中非常有用的一种数据类型&#xff0c;它可以让你在 Python 中更加高效地处理大量数据。生成器可以让你一次生成一个值&#xff0c;而不是一次生成一个序列&#xff0c;这样可以节省内存并提高性能 二、实现generator的两种方式 python中的gener…

SuperMap iClient3D for Cesium最短路径分析

作者&#xff1a;Mei 目录 前言实现思路实现步骤1、构建二维网络数据集1.1拓扑检查1.2线拓扑数据集处理1.3构建二维网络数据集 2、发布网络分析服务3、实现代码 前言 在交通、消防业务场景中&#xff0c;如果某地发生火灾或者交通事故&#xff0c;需要快速规划出最短抢救路线&a…

flask计算pin码

目录 Flask计算pin码 <1> 概念 什么是pin码&#xff1f; pin码生成条件&#xff1f; 读取相关文件绕过过滤 <2> 源码分析 werkzeug 1.0.x版本 计算PIN的源码 werkzeug 2.0.x版本 计算PIN的源码 <3> 计算生成pin的脚本 CTF中 flask-pin的应用 <1…