题解 | #最长无重复子串# 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
}
查看7道真题和解析