Golang | Leetcode Golang题解之第354题俄罗斯套娃信封问题

题目:

题解:

Go 复制代码
func maxEnvelopes(envelopes [][]int) int {
    n := len(envelopes)
    if n == 0 {
        return 0
    }

    sort.Slice(envelopes, func(i, j int) bool {
        a, b := envelopes[i], envelopes[j]
        return a[0] < b[0] || a[0] == b[0] && a[1] > b[1]
    })

    f := make([]int, n)
    for i := range f {
        f[i] = 1
    }
    for i := 1; i < n; i++ {
        for j := 0; j < i; j++ {
            if envelopes[j][1] < envelopes[i][1] {
                f[i] = max(f[i], f[j]+1)
            }
        }
    }
    return max(f...)
}

func max(a ...int) int {
    res := a[0]
    for _, v := range a[1:] {
        if v > res {
            res = v
        }
    }
    return res
}
相关推荐
winyh528 分钟前
基于Golang的微服务——Consul
微服务·golang·consul
zhuyasen3 小时前
Go语言Viper配置详解:conf库优雅解析实战
后端·golang
一只_程序媛4 小时前
【leetcode hot 100 142】环形链表Ⅱ
算法·leetcode·链表
dengjiayue5 小时前
golang 高性能的 MySQL 数据导出
开发语言·mysql·golang
编程绿豆侠7 小时前
力扣HOT100之双指针:11. 盛最多水的容器
算法·leetcode·职场和发展
a李兆洋7 小时前
力扣 Hot 100 刷题记录 - LRU 缓存
算法·leetcode·缓存
2301_766536058 小时前
刷leetcode hot100--动态规划3.11
算法·leetcode·动态规划
VT.馒头8 小时前
【力扣】2629. 复合函数——函数组合
前端·javascript·算法·leetcode
论迹9 小时前
【二分算法】-- 三种二分模板总结
java·开发语言·算法·leetcode
小徐Chao努力10 小时前
Leetcode-146.LRU缓存
java·leetcode