zoukankan      html  css  js  c++  java
  • 456.132模式

    2020-07-13
    132模式
    题解:
    思路1:暴力。。。
    var find132pattern = function (nums) {
      // i 记录当前的左侧 j记录当前的右侧 
      let i = Number.MAX_SAFE_INTEGER, j = Number.MIN_SAFE_INTEGER, tmp;
      // ir是左边界点的值 对应的jr是右界点的值 ir[i] j[i] 组成的是出现过的区间
      let ir = [], jr = [];
      // 遍历nums
      for (let index = 0; index < nums.length; index++) {
        tmp = nums[index]; // 记录当前值
        for (let ii = 0; ii < ir.length; ii++) { // 遍历左右界点 看看是tmp是否符合题意
          if (tmp > ir[ii] && tmp < jr[ii]) return true;
        }
        if (tmp > i && tmp < j) return true; // tmp与当前ij是否符合题意 也就是出现了[i,j]=[1,3] tmp=2的情况
        else if (tmp < i) { // 如果tmp比i小
          if (tmp < j) { // 且如果tmp比j也小 说明出现了 [i, j]=[1, 3] tmp=0 这种的情况
            ir.push(i); // 将i j 分别推入ir jr  记录出现过的区间
            jr.push(j);
            j = Number.MIN_SAFE_INTEGER; // 重新赋值j
          }
          i = tmp; // 将更小的tmp赋值给i
        }
        else if (tmp > j) j = tmp; // 如果tmp比i大也比j大 也就是出现了 [i,j] = [1,3] tmp = 4的情况
      }
      return false; // 遍历完 没有符合题意的结果 返回false
    };
  • 相关阅读:
    构造回文的最小插入次数
    动态规划设计:最大子数组
    状态压缩:对动态规划进行降维打击
    团灭 LeetCode 股票买卖问题
    经典动态规划:戳气球
    贪心算法之区间调度问题
    微信分享 添加URL Schemes
    UITouch的用法
    HTTP协议详解
    经典SQL语句大全
  • 原文地址:https://www.cnblogs.com/lanpang9661/p/13291835.html
Copyright © 2011-2022 走看看