题解 | #最长无重复子串# go + 滑动窗口

最长无重复子串

http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4

go + 滑动窗口

package main

/**
 * 
 * @param arr int整型一维数组 the array
 * @return int整型
*/
func maxLength( arr []int ) int {
    // write code here
    if len(arr) == 0 {
        return 0
    }

    m := make(map[int]int)
    max := 0 // 最大值
    start := 0 // 窗口左侧位置

//  滑动窗口
    for right := 0;right < len(arr);right++ {
        num := arr[right]
        m[num]++

        for m[num] > 1 {
//          注意此处很重要,窗口缩小时,start处对应的字符数-1
            d := arr[start]
            start++
            ***x = maxs(max, right-start+1)
    }
    return max
}

func maxs(a,b int) int {
    if a > b {return a}
    return b
}
全部评论

相关推荐

2025-11-26 11:32
已编辑
好未来_go开发(实习员工)
不服输的咸鱼很聪明:还给打电话呀,我的没给我打电话呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务