【LeetCode】Increasing Triplet Subsequence
来源:互联网 发布:软件系统分类 编辑:程序博客网 时间:2024/05/16 05:56
Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array.
Formally the function should:
Return true if there exists i, j, ksuch that arr[i] < arr[j] < arr[k] given 0 ≤ i < j < k ≤ n-1 else return false.
Your algorithm should run in O(n) time complexity and O(1) space complexity.
Examples:
Given [1, 2, 3, 4, 5],
return true.
Given [5, 4, 3, 2, 1],
return false.
题目大意:给你一个数组,判断其中是否有三个递增的数,有的话返回True,没有的话返回False。
解析:本题中要求事件复杂度为O(n)且空间复杂度为O(1),所以用dp去解决不合题意,这个问题的本质就是找到三个增长的数,所以可以先在数组中找到两个递增的min1,min2(很容易实现,遍历的时候做一下判断就行了),然后遍历剩下的数的时候有三种情况:
(1)小于min1:把该数替换成min1
(2)min1和min2之间:把该数替换成min2
(3)大于min2:三个递增的数已经找到,返回True
代码:
class Solution {public: bool increasingTriplet(vector<int>& nums) { if(nums.size()<3) return false; int min1 = INT_MAX; int min2 = INT_MAX; for(int i =0;i<nums.size();i++){ if(nums[i]<=min1) min1 = nums[i]; else if(nums[i]<=min2) min2 = nums[i]; else return true; } return false; }};
0 0
- leetcode Increasing Triplet Subsequence
- LeetCode - Increasing Triplet Subsequence
- [LeetCode] Increasing Triplet Subsequence
- LeetCode Increasing Triplet Subsequence
- Leetcode:Increasing Triplet Subsequence
- LeetCode:Increasing Triplet Subsequence
- leetcode:Increasing Triplet Subsequence
- [LeetCode]Increasing Triplet Subsequence
- Leetcode Increasing Triplet Subsequence
- 【LeetCode】Increasing Triplet Subsequence
- leetcode increasing-triplet-subsequence
- leetcode Increasing Triplet Subsequence
- 【Leetcode】Increasing Triplet Subsequence
- LeetCode:Increasing Triplet Subsequence
- LeetCode Increasing Triplet Subsequence
- leetCode---Increasing Triplet Subsequence
- [leetcode] 334. Increasing Triplet Subsequence
- Leetcode 334. Increasing Triplet Subsequence
- Spark搭建HA详解
- REST初体验
- webview修改版式
- js--面向对象--非构造函数的继承
- Android PopupWindow弹出窗口的完美实现(实现弹出背景变暗效果)
- 【LeetCode】Increasing Triplet Subsequence
- 计算机视觉与机器视觉
- Eclipse-----Eclipse中SVN过滤提交
- CC2530+74HC164矩阵键盘的设计
- [C#]浮雕化、锐化图像处理
- pwntools使用简介
- <Mac OS X中开启或关闭隐藏文件夹> And <安装了两个版本的Xcode,终端下Git出错>
- CY7c68013 Venor命令学习笔记
- Java单元测试(Junit+Mock+代码覆盖率)