LeetCode 334. 递增的三元子序列
题目描述
给你一个整数数组 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 的三元组都满足题意
递增的三元子序列
提示:
一、解题关键词
数组 递增 3
二、解题报告
1.思路分析
联系 最长公共子串
更新最小值 最大值问题
2.时间复杂度
3.代码示例
class Solution {
public boolean increasingTriplet(int[] nums) {
int len = nums.length;
//贪心算法
if (len < 3){return false;}
int first = nums[0],second = Integer.MAX_VALUE;
for (int i = 0; i < len; i++) {
int num = nums[i];
if (num > second){return true;}
if (num > first){second = num;}
else {first = num;}
}
return false;
}
}
2.知识点
总结
贼巧妙!!!
本文介绍了LeetCode第334题的解题思路和解决方案。通过贪心算法,利用两个变量记录当前数组中的最小值和次小值,遍历数组判断是否存在递增三元子序列。时间复杂度为O(n),代码简洁高效。
5万+

被折叠的 条评论
为什么被折叠?



