题目链接:https://ac.nowcoder.com/acm/problem/13134

 分析:如何才能通过操作选择最长连续上升子序呢?

方法:我们用数组来维护一个位置的最长连续上升子序列的长度。

l【i】:表示位置i的左边所拥有的最长连续上升子序列长度

r【i】:表示位置i的右边所拥有的最长连续上升子序列长度

最容易的想到的答案一定是:lis+1。因为我们发现只要最长连续上升子序列的长度是小于数组长度的,那么一定可以通过操作是lis+1的。

另一个答案则是l,r两个数组的合并了。

具体看代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
int a[N],l[N],r[N];inline void solve(){int n;cin>>n;for(int i=1;i<=n;i++) cin>>a[i];int cnt=0,ans=1;for(int i=1;i<=n;i++){if(a[i]>a[i-1]){cnt++;l[i]=cnt;if(i!=n) ans=max(ans,l[i]+1);//lis<n,则可以使lis+1else ans=max(ans,l[i]);//否则为本身长度}else l[i]=1,cnt=1;}//for(int i=1;i<=n;i++) cout<<l[i]<<" ";//cout<<"\n";cnt=0;for(int i=n;i;i--){//同上if(a[i]<a[i+1]){cnt++;r[i]=cnt;if(i!=1) ans=max(ans,r[i]+1);else ans=max(ans,r[i]);}else r[i]=1,cnt=1;}for(int i=1;i<=n;i++){if(a[i+1]-a[i-1]>1) //仅有两个数相差大于1才能改变一个数使这两个序列进行合并ans=max(ans,l[i-1]+r[i+1]+1);}//for(int i=1;i<=n;i++) cout<<r[i]<<" ";cout<<ans<<"\n";
}signed main(){solve();
}

牛牛的数列(最长连续上升子序)相关推荐

  1. 快手腾讯校招笔试题最长回文子序

    腾讯2017 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串.如何删除才能使得回文串最长呢? 输出需要删除的字符个数. 输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1 ...

  2. 674. Longest Continuous Increasing Subsequence最长连续递增子数组

    [抄题]: Given an unsorted array of integers, find the length of longest continuous increasing subseque ...

  3. HDU 2144 (最长连续公共子列 + 并查集) Evolution

    我发现我一直理解错题意了,这里的子序列指的是连续子序列,怪不得我写的LCS一直WA 顺便复习一下并查集 1 //#define LOCAL 2 #include <iostream> 3 ...

  4. LeetCode 1771. 由子序列构造的最长回文串的长度(最长回文子序)

    文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 word1 和 word2 ,请你按下述方法构造一个字符串: 从 word1 中选出某个 非空 子序列 subsequence1 . 从 ...

  5. leetcode1438. 绝对差不超过限制的最长连续子数组

    给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件的子数组,则返回 ...

  6. LeetCode-1438. 绝对差不超过限制的最长连续子数组

    题目描述: 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件的子数 ...

  7. [LetCode-1438] 绝对差不超过限制的最长连续子数组

    题目 - letcode1438 难度 - 中等 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 l ...

  8. [leetcode]1438. 绝对差不超过限制的最长连续子数组

    个人博客:https://javaniuniu.com/ 难度:中等 本题涉及算法: 滑动窗口 思路:滑动窗口 类似题型: 3. 无重复字符的最长子串 5393. 可获得的最大点数 题目 1438. ...

  9. LeetCode 1438 绝对差不超过限制的最长连续子数组

    题目链接 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件的子数组 ...

最新文章

  1. java tls 证书_在使用Java 8重新协商TLS_1.2期间,服务器证书更改受到限制
  2. 2017.9.11 聪明的燕姿 失败总结
  3. 3-28Pytorch与autograd导数
  4. SSL introduce itself from baidu
  5. 详解Guitar Pro的自动化编辑器之节拍自动化
  6. 用python股票_十分钟学会用Python交易股票
  7. PS-elevenday-铅笔工具(颜色替换)
  8. 74LS138译码器实现2位二进制乘法器-QuartusII 软件仿真
  9. Android 打开淘宝商品详情
  10. 金山WPS服务端开发工程师(第一次)(2018年秋招 2018-9-4)
  11. DES加密算法的C++实现
  12. Redis的zset结构跳表
  13. uedit上传视频时提示输入的视频地址有误,请检查后再试
  14. R7-17 程序填空题2
  15. 跨部门的高效沟通与协作
  16. 北航周号益:从“鹦鹉”到“乌鸦”,AI的本质是探索通用智能的可能性
  17. layui 关闭当前弹出窗口
  18. SecureCrt 的配色方案
  19. Bzoj4826 [Hnoi2017]影魔
  20. X-Lite和eyeBeam常见故障以及解决方法

热门文章

  1. windows下 redis重启数据不丢失
  2. 【AI+IOT】人工智能+物联网:这7家公司如何让机器更“听话”
  3. 激光slam与视觉slam
  4. 来啊,来魔改啊,人生重开模拟器一键托管上线
  5. 跟着我学习 AI丨初识 AI
  6. 适合后端开发者的Boot Strap学习笔记
  7. html表格整体自适应,简单的html表格自适应解决方案
  8. Unablenbsp;tonbsp;chmodnbsp;sdcard:nbsp;Read-onl…
  9. Pet +fzf + glow 打造 CLI 端高效 Wiki
  10. 金行健:小米汽车经理级工程师薪酬曝光,年薪60万配100万期权