题解 | #最长的可整合子数组的长度#

最长的可整合子数组的长度

http://www.nowcoder.com/practice/677a21987e5d46f1a62cded9509a94f2

// python3 无法通过
package main
 
import (
    "fmt"
    "math"
)
 
func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}
 
func min(x, y int) int {
    if x > y {
        return y
    }
    return x
}

func main() {
    var n int
    fmt.Scanln(&n)
    arr := make([]int, n)
    for i := 0; i < n; i++ {
        fmt.Scan(&arr[i])
    }
    res := 0
    for i := 0; i < n; i++ {
        ma := math.MinInt64
        mi := math.MaxInt64
        set := make(map[int]struct{})
        for j := i; j < n; j++ {
            if _, exist := set[arr[j]]; exist {
                break
            }
            set[arr[j]] = struct{}{}
            ma = max(ma, arr[j])
            mi = min(mi, arr[j])
            if ma - mi == j - i {
                res = max(res, j - i + 1)
            }
        }
    }
    fmt.Println(res)
}
全部评论

相关推荐

05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务