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
}