ARTS #79

Algorithm

646. 最长数对链

func findLongestChain(pairs [][]int) int {
    sort.Slice(pairs, func(i, j int) bool {
        if pairs[i][0] < pairs[j][0] {
            return true
        } else if pairs[i][0] == pairs[j][0] {
            return pairs[i][1] >= pairs[j][1]
        } else {
            return false
        }
    })
    length := len(pairs)
    dp := make([]int, length)
    dp[0] = 1
    result := 1
    for i := 1; i < length; i++ {
        count := 1
        for j := i - 1; j >= 0; j-- {
            if pairs[i][0] > pairs[j][1] {
                count = dp[j] + 1
                break
            }
        }
        dp[i] = count
        if count > result {
            result = count
        }
    }
    return result
}

Review

NA

TIP

这周工作过程需要在本地环境运行不同go版本进行编译问题定位,所以了解了下如何安装不同go版本官方的 Go 多版本管理:使用和原理

$ go get golang.org/dl/go<version>      // 其中 <version> 替换为你希望安装的 Go 版本
$ go<version> download          // 和上面一样,<version> 是具体的版本

Share

这周了解了下无锁并发编程的底层原理:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容