Fusionner deux tranches entières et renvoyer une tranche sans éléments en double. Il existe deux stratégies de déduplication
1. filtrer les éléments en double (le temps est échangé contre de l'espace) (apprentissage recommandé : go)
// 通过两重循环过滤重复元素 func RemoveRepByLoop(slc []int) []int { result := []int{} // 存放结果 for i := range slc{ flag := true for j := range result{ if slc[i] == result[j] { flag = false // 存在重复元素,标识为false break } } if flag { // 标识为false,不添加进结果 result = append(result, slc[i]) } } return result }
2. Filtrer via le dictionnaire (l'espace est échangé contre du temps)
.La clé primaire du dictionnaire étant unique, elle peut être utilisée pour déterminer si les éléments sont répétés
// 通过map主键唯一的特性过滤重复元素 func RemoveRepByMap(slc []int) []int { result := []int{} tempMap := map[int]byte{} // 存放不重复主键 for _, e := range slc{ l := len(tempMap) tempMap[e] = 0 if len(tempMap) != l{ // 加入map后,map长度变化,则元素不重复 result = append(result, e) } } return result }
ps : Afin d'économiser de la mémoire, map[int]byte est utilisé ici. La valeur de map n’étant pas utilisée, n’importe quel type peut être utilisé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!