zoukankan      html  css  js  c++  java
  • LeetCode 456. 132模式

    题目描述:

    解法一:

    class Solution {
    public:
        bool find132pattern(vector<int>& nums) {
            int n=nums.size();
            if(n<3) return false;
            int i=0,j=0,k=0;
            while(i<n){
                while(i<n-2&&nums[i]>=nums[i+1]) i++;            //找到可能的1和3位,然后寻找后面的2
                j=i+1;
                while(j<n-1&&nums[j]<=nums[j+1]) j++;
                k=j+1;
                while(k<n){
                    if(nums[i]<nums[k]&&nums[k]<nums[j])
                        return true;
                    k++;
                }
                i=j+1;
            }
            return false;
        }
    };

    解法二:

    class Solution {
    public:
        bool find132pattern(vector<int>& nums) {
            int n= nums.size();
            if(n<3) return false;
            stack<int> stk;                                    //递减栈中保存有可能的3
            int nextmin=INT_MIN;                               //2位
            for(int i=n-2;i>=0;i--){                           //从后向前搜索
                if(nums[i]<nextmin)                            //寻找存在小于2的数
                    return true;
                while(!stk.empty()&&stk.top()<nums[i]){
                    nextmin=stk.top();                         //不断更新最大数3和次大数2
                    stk.pop();
                }
                stk.push(nums[i]);
            }
            return false;
        }
    };
  • 相关阅读:
    8 Range 对象
    7 Worksheet 对象
    6 Workbook 对象
    5 Application 对象
    Windows路径
    windows 下操作目录(使用DOS命令)
    Windows 批处理
    6 WPF控件
    Lexer and parser generators (ocamllex, ocamlyacc)
    4.9 Parser Generators
  • 原文地址:https://www.cnblogs.com/oneDongHua/p/14264000.html
Copyright © 2011-2022 走看看