• Leetcode 456. 132模式


    题目链接

    https://leetcode-cn.com/problems/132-pattern/

    给定一个整数序列:a1, a2, ..., an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj。设计一个算法,当给定有 n 个数字的序列时,验证这个序列中是否含有132模式的子序列。

    注意:n 的值小于15000。

    示例1:

    输入: [1, 2, 3, 4]

    输出: False

    解释: 序列中不存在132模式的子序列。
    示例 2:

    输入: [3, 1, 4, 2]

    输出: True

    解释: 序列中有 1 个132模式的子序列: [1, 4, 2].
    示例 3:

    输入: [-1, 3, 2, 0]

    输出: True

    解释: 序列中有 3 个132模式的的子序列: [-1, 3, 2], [-1, 3, 0] 和 [-1, 2, 0].

    思路:通过打擂台的方式

    第一个循环跑最小值,如果当前值最小,就进入第二层循环,第二层循环要找到32,也就是比nums[j]>min,且nums[j]<nums[i],这样子就确认了最大值和次小值

     1 int min(int a,int b)
     2 {
     3     return a>b?b:a;
     4 }
     5 bool find132pattern(int* nums, int numsSize)
     6 {                
     7     int i,j,min1=9999999999;
     8     for(i = 0; i<numsSize; i ++)
     9     {
    10         min1 = min(min1,nums[i]);
    11         if(min1 != nums[i])
    12         {
    13            for(int j=numsSize-1;j>i;j--)
    14            {
    15                if(min1<nums[j]&&nums[j]<nums[i])
    16                 return true;
    17            }
    18         }
    19     }
    20     return false;
    21 }
    View Code
  • 相关阅读:
    234树(2)实现
    矩阵的坐标变换(转)
    OpenGL 学习笔记(3)绘制几何物体
    OpenGL 学习笔记(1)初始化窗体
    OpenGL学习笔记(5)3D基本概念
    矩阵的三维变换(转)
    OpenGL 学习笔记(2)创建第一个图形
    234树(1)概念
    OpenGL 学习笔记(4)顶点数组
    OpenGL学习笔记(6)第一个动画
  • 原文地址:https://www.cnblogs.com/tijie/p/12120053.html
Copyright © 2020-2023  润新知