现有一个整数序列arrOrigin[N],交换其中任意两个数,求功能得到多少种可能的序列(3,3,3,3无论怎么交换只能得到一个序列)
package main
import "fmt"
func frequency(x []int) map[int]int {
y:=make(map[int]int)
for i:=0; i<len(x); i++ {
y[x[i]]++
}
return y
}
func exchange(x []int) int {
f:=frequency(x)
n:=len(x)
y:=n*(n-1)/2
for _,value:=range f{
if value>1 {
y-=value*(value-1)/2
}
}
return y
}
func main() {
x:=[]int{1,2,3,3,4,5,5,5}
fmt.Print(exchange(x))
}