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

题目:

题解:

Go 复制代码
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
}
相关推荐
weixin_437398211 小时前
转Go学习笔记
linux·服务器·开发语言·后端·架构·golang
Code季风4 小时前
深入比较 Gin 与 Beego:Go Web 框架的两大选择
开发语言·golang·go·gin·beego
Code季风4 小时前
Gin 中间件详解与实践
学习·中间件·golang·go·gin
九班长4 小时前
Golang服务端处理Unity 3D游戏地图与碰撞的详细实现
3d·unity·golang
Alfred king12 小时前
面试150 生命游戏
leetcode·游戏·面试·数组
cui_win18 小时前
【基础】Golang语言开发环境搭建(Linux主机)
linux·golang·运维开发
薰衣草233318 小时前
一天两道力扣(1)
算法·leetcode·职场和发展
爱coding的橙子19 小时前
每日算法刷题Day41 6.28:leetcode前缀和2道题,用时1h20min(要加快)
算法·leetcode·职场和发展
叹一曲当时只道是寻常20 小时前
Softhub软件下载站实战开发(十):实现图片视频上传下载接口
golang·go·音视频
前端拿破轮1 天前
不是吧不是吧,leetcode第一题我就做不出来?😭😭😭
后端·算法·leetcode