给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。

如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。

示例 1:

输入:nums = [1,2,3,4,5]
输出:true
解释:任何 i < j < k 的三元组都满足题意
示例 2:

输入:nums = [5,4,3,2,1]
输出:false
解释:不存在满足题意的三元组
示例 3:

输入:nums = [2,1,5,0,4,6]
输出:true
解释:三元组 (3, 4, 5) 满足题意,因为 nums[3] == 0 < nums[4] == 4 < nums[5] == 6

提示:

1 <= nums.length <= 5 * 105
-231 <= nums[i] <= 231 - 1

进阶:你能实现时间复杂度为 O(n) ,空间复杂度为 O(1) 的解决方案吗?

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/increasing-triplet-subsequence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

实现思路:

这道题本质上是贪心+dp的问题,对于子序列的每一个数,我有不同的要求。

对于第三个数,我需要它出现满足条件的那一刻起,直接return true;

而对于第二个数,我需要它在大于第一个数的基础上尽可能的大;

而第一个数,则是尽量要小;

所以比较永远是与第一个数比。


而在标准答案中,我产生了一个疑问,它是如何保证第二个数的次序一定在第一个数前面的??

答:它不需要始终满足secod一定在first前面,只是以未移动前的first作为一个分界值,如果能找到第三个数并return true,前面一定有一个值比second小,不过未必是first,可能是最初的first,或者是first先前的某个值。可以用[5,4,8,3,9]来感受一下。


实现代码:

class Solution {
public:bool increasingTriplet(vector<int>& nums) {if(nums.size()<3) return false;int first=nums[0],second=INT_MAX;for(int i=1;i<nums.size();i++){int num=nums[i];if(num>second) return true;else if(num>first) second=num;else if(num<first) first=num;}return false;}
};

LeetCode第334题 递增的三元子序列(c++)(建议二刷)相关推荐

  1. 算法题 递增的三元子序列

    LeetCode 334 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k,  且满足 0 ≤ i < j < k  ...

  2. LeetCode 每日一题打卡:334.递增的三元子序列

    题目 334.递增的三元子序列 题目大意 给你一个整数数组numsnumsnums ,判断这个数组中是否存在长度为333的递增子序列. 如果存在这样的三元组下标(i,j,k)(i, j, k)(i,j ...

  3. Leetcode 334.递增的三元子序列

    原题链接: Leetcode 334.递增的三元子序列 Given an integer array nums, return true if there exists a triple of ind ...

  4. LeetCode:递增的三元子序列【334】

    LeetCode:递增的三元子序列[334] 题目描述 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k,  且满足 0 ≤ i ...

  5. Python描述 LeetCode 334. 递增的三元子序列

    Python描述 LeetCode 334. 递增的三元子序列   大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前端 ...

  6. 【LeetCode】334. 递增的三元子序列

    一.题目 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列. 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] ...

  7. Java实现 LeetCode 334 递增的三元子序列

    334. 递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ...

  8. 334. 递增的三元子序列(中等 贪心 数组)

    334. 递增的三元子序列 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列. 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 ...

  9. 334. 递增的三元子序列

    334. 递增的三元子序列 难度:中等 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列. 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < ...

最新文章

  1. 宏基因组教程Metagenomics Tutorial (HUMAnN2)
  2. 【Linux】数据库管理
  3. Java泛型详解,通俗易懂
  4. 路由怎么定位到当前页面的组件_Angular 重载当前路由
  5. Parallel Extensions CTP第二版发布
  6. 剑桥女博士创立情绪识别 AI 公司,帮助自闭症患者理解他人表情
  7. Apache Flink 1.10.0 重磅发布,年度最大规模版本升级!
  8. AttributeError: module ‘ahocorasick‘ has no attribute ‘Automaton‘
  9. js特效--移动的广告窗
  10. 用英语说计算机的优点1000,我的英语老师作文1000字
  11. SATA串口硬盘设置、分区及安装
  12. idea编辑区左侧行号背景颜色修改
  13. 生产订单完工确认(CO11N) BAPI : BAPI_PRODORDCONF_CREATE_TT
  14. HTML——前端实时可视化开发工具
  15. 大数据学习之环境构建
  16. 大学计算机实验六文件管理与磁盘恢复,做“文件管理与磁盘恢复”实验完成以下实验报告表并提交...
  17. uni-app安心打包ios失败
  18. plink, vcftool计算等位基因频率(allele frequency,vcf)
  19. 1999~2019 年,互联网二十载野蛮生长史!
  20. odoo13 订单模板设置_Odoo + Anodoo功能介绍13-SaaS公司如何定义在线销售的订阅产品...

热门文章

  1. c语言和远光灯标志,汽车仪表盘图标大全,汽车仪表盘指示灯图解 - 汽车电子 - 电子发烧友网...
  2. 深入浅出!mysql免安装版教程
  3. 详解六大QQ病毒特征及清除方法
  4. 渗透测试-中间件解析漏洞分析
  5. 工频X线机计算机控制,FSK302-1A型500mA程控X线机.doc
  6. JavaScript很少为人所知的玩法
  7. “玩泥巴”有利健康?接触环境微生物群可能调节肠道菌群和免疫系统
  8. 大数据集群硬盘资源监控
  9. 花生日记运营商怎么做
  10. 计算机一级表格分类汇总怎么弄,多张word表格分类汇总 word表格分类汇总