| 12345678910111213141516171819202122232425262728293031 | func findShortestSubArray(nums []int) int {	n := len(nums)	if n <= 1 {		return n	}	max := 0	var freq [50000]int	ans := make([]int, 0)	var beg, end [50000]int	for i, v := range nums {		if freq[v] == 0 {			beg[v] = i		}		freq[v]++		if max < freq[v] {			max = freq[v]			ans = []int{v}			end[v] = i		} else if max == freq[v] {			ans = append(ans, v)			end[v] = i		}	}	max = n	for _, v := range ans {		if l := end[v] - beg[v] + 1; l < max {			max = l		}	}	return max}
 |