Golang 배열의 교차점을 찾는 데는 두 가지 일반적인 방법이 있습니다. 내장된 추가 기능을 사용하는 것, 요소가 다른 배열에 있는지 확인하기 위해 반복하는 것, 교차점을 찾기 위해 중첩하는 것입니다. map을 사용하면 매핑 테이블을 생성하여 중복 요소를 제외하고 효율적으로 교차점을 얻을 수 있습니다.
Golang의 배열 교차 구현 방법
Golang에는 배열 교차를 해결하는 여러 가지 방법이 있습니다. 이 문서에서는 가장 일반적인 두 가지 방법인 내장 append
기능을 사용하는 방법과 map
을 사용하는 방법을 소개합니다. append
函数和使用 map
。
方法 1:使用内置的 append
函数
append
函数可以将元素添加到现有数组中,也可以创建一个新数组。我们可以利用这个特性来求交集:
func intersection(a, b []int) []int { result := []int{} for _, v := range a { if containsInArray(b, v) { result = append(result, v) } } return result } func containsInArray(arr []int, elem int) bool { for _, v := range arr { if v == elem { return true } } return false }
方法 2:使用 map
另一种求交集的方法是使用 map
。与 append
函数相比,使用 map
的效率更高,因为它可以 O(n) 的时间复杂度排除重复元素:
func intersection(a, b []int) []int { m := make(map[int]bool) for _, v := range a { m[v] = true } result := []int{} for _, v := range b { if m[v] { result = append(result, v) } } return result }
实战案例
假设我们有以下两个数组:
a := []int{1, 2, 3, 4, 5, 6} b := []int{3, 4, 5, 6, 7, 8}
使用 append
函数求交集:
intersectionAB := intersection(a, b) fmt.Println(intersectionAB) // [3 4 5 6]
使用 map
append
함수 사용 🎜🎜🎜append
함수는 기존 배열에 요소를 추가하거나 새 배열을 만들 수 있습니다. 이 기능을 사용하여 교차로를 찾을 수 있습니다. 🎜intersectionBA := intersection(b, a) fmt.Println(intersectionBA) // [3 4 5 6]
지도
사용🎜🎜🎜교차로를 찾는 또 다른 방법은 지도
를 사용하는 것입니다. append
함수와 비교할 때 map
을 사용하는 것이 O(n) 시간 복잡도로 중복 요소를 제거할 수 있기 때문에 더 효율적입니다. 🎜rrreee🎜🎜실용 사례🎜🎜 🎜우리가 다음 두 개의 배열이 있습니다. 🎜rrreee🎜교차점을 찾으려면 append
함수를 사용하세요. 🎜rrreee🎜교차점을 찾으려면 map
을 사용하세요. 🎜rrreee위 내용은 Golang에서 배열 교차를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!