1. 程式人生 > >給定一個未排序的陣列,返回是否存在一個長度為3的遞增子序列或不在陣列中。

給定一個未排序的陣列,返回是否存在一個長度為3的遞增子序列或不在陣列中。

本題源自leetcode

-------------------------------------------------

思路 : 1 設定倆個標誌值 c1,c2都為最大值。

2  遍歷陣列 每一次都與c1,c2 比較如果比c1 小就把c1 設為這個值。否則就與c2 比。如果比c2小,就賦值給c2否則就存在遞增子序列。

程式碼;

 bool increasingTriplet(vector<int>& nums) {
        if(nums.size()<3)
            return false;
        int c1=INT_MAX;
        int c2=INT_MAX;
        for(int i=0;i<nums.size();i++){
            if(nums[i]<=c1){
                c1=nums[i];
            }else if(nums[i]<=c2){
                c2=nums[i];
            }else{
                return true;
            }
        }
        return false;
    }