LeetCode第334题 递增的三元子序列(c++)(建议二刷)
给你一个整数数组 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++)(建议二刷)相关推荐
- 算法题 递增的三元子序列
LeetCode 334 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ...
- LeetCode 每日一题打卡:334.递增的三元子序列
题目 334.递增的三元子序列 题目大意 给你一个整数数组numsnumsnums ,判断这个数组中是否存在长度为333的递增子序列. 如果存在这样的三元组下标(i,j,k)(i, j, k)(i,j ...
- Leetcode 334.递增的三元子序列
原题链接: Leetcode 334.递增的三元子序列 Given an integer array nums, return true if there exists a triple of ind ...
- LeetCode:递增的三元子序列【334】
LeetCode:递增的三元子序列[334] 题目描述 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i ...
- Python描述 LeetCode 334. 递增的三元子序列
Python描述 LeetCode 334. 递增的三元子序列 大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前端 ...
- 【LeetCode】334. 递增的三元子序列
一.题目 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列. 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] ...
- Java实现 LeetCode 334 递增的三元子序列
334. 递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ...
- 334. 递增的三元子序列(中等 贪心 数组)
334. 递增的三元子序列 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列. 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 ...
- 334. 递增的三元子序列
334. 递增的三元子序列 难度:中等 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列. 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < ...
最新文章
- 宏基因组教程Metagenomics Tutorial (HUMAnN2)
- 【Linux】数据库管理
- Java泛型详解,通俗易懂
- 路由怎么定位到当前页面的组件_Angular 重载当前路由
- Parallel Extensions CTP第二版发布
- 剑桥女博士创立情绪识别 AI 公司,帮助自闭症患者理解他人表情
- Apache Flink 1.10.0 重磅发布,年度最大规模版本升级!
- AttributeError: module ‘ahocorasick‘ has no attribute ‘Automaton‘
- js特效--移动的广告窗
- 用英语说计算机的优点1000,我的英语老师作文1000字
- SATA串口硬盘设置、分区及安装
- idea编辑区左侧行号背景颜色修改
- 生产订单完工确认(CO11N) BAPI : BAPI_PRODORDCONF_CREATE_TT
- HTML——前端实时可视化开发工具
- 大数据学习之环境构建
- 大学计算机实验六文件管理与磁盘恢复,做“文件管理与磁盘恢复”实验完成以下实验报告表并提交...
- uni-app安心打包ios失败
- plink, vcftool计算等位基因频率(allele frequency,vcf)
- 1999~2019 年,互联网二十载野蛮生长史!
- odoo13 订单模板设置_Odoo + Anodoo功能介绍13-SaaS公司如何定义在线销售的订阅产品...
热门文章
- c语言和远光灯标志,汽车仪表盘图标大全,汽车仪表盘指示灯图解 - 汽车电子 - 电子发烧友网...
- 深入浅出!mysql免安装版教程
- 详解六大QQ病毒特征及清除方法
- 渗透测试-中间件解析漏洞分析
- 工频X线机计算机控制,FSK302-1A型500mA程控X线机.doc
- JavaScript很少为人所知的玩法
- “玩泥巴”有利健康?接触环境微生物群可能调节肠道菌群和免疫系统
- 大数据集群硬盘资源监控
- 花生日记运营商怎么做
- 计算机一级表格分类汇总怎么弄,多张word表格分类汇总 word表格分类汇总