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
} 
京公网安备 11010502036488号