当前位置: 首页 > article >正文

Golang | Leetcode Golang题解之第456题132模式

题目:

题解:

func find132pattern(nums []int) bool {
    candidateI, candidateJ := []int{-nums[0]}, []int{-nums[0]}

    for _, v := range nums[1:] {
        idxI := sort.SearchInts(candidateI, 1-v)
        idxJ := sort.SearchInts(candidateJ, -v)
        if idxI < idxJ {
            return true
        }

        if v < -candidateI[len(candidateI)-1] {
            candidateI = append(candidateI, -v)
            candidateJ = append(candidateJ, -v)
        } else if v > -candidateJ[len(candidateJ)-1] {
            lastI := -candidateI[len(candidateI)-1]
            for len(candidateJ) > 0 && v > -candidateJ[len(candidateJ)-1] {
                candidateI = candidateI[:len(candidateI)-1]
                candidateJ = candidateJ[:len(candidateJ)-1]
            }
            candidateI = append(candidateI, -lastI)
            candidateJ = append(candidateJ, -v)
        }
    }

    return false
}

http://www.kler.cn/news/342901.html

相关文章:

  • 为何一个简单的线上商城 两年销售7000多万?
  • 如何在uniAPP中编写页面
  • SFML库环境配置
  • Spring 如何加载多份配置文件
  • C++ | Leetcode C++题解之第468题验证IP地址
  • 奥普思凯 ——AI 扫描仪引领办公新潮流
  • MFC的.rc 和.rc2文件【常见问题】
  • C#使用ITextSharp生成PDF文件实例详解
  • 【C++】C++入门基础
  • leetcode链表(一)-移除链表元素
  • html中<div>标签设置宽度和高度都有哪些方法
  • <Project-8.1 pdf2tx-MM> Python Flask 用浏览器翻译PDF内容 2个翻译引擎 繁简中文结果 从P8更改
  • 【SQL】Windows MySQL 服务查询启动停止自启动(保姆级)
  • Leetcode 数组中第 k 大的元素
  • 「自动化测试」Selenium 的使用
  • C++设计模式——代理模式
  • 论文阅读:Split-Aperture 2-in-1 Computational Cameras (二)
  • js中获取、改变、添加、删除元素的方法
  • MyBatis 用法详解
  • 生成对抗网络(GAN,Generative Adversarial Network)