2 回答
TA貢獻1906條經驗 獲得超3個贊
您必須遍歷地圖的內容以檢查該地圖中是否包含某個元素。
例如:
target := []int{30, 30}
for _, v := range myMap {
for _, sub := range v {
if len(sub) == len(target) && sub[0] == target[0] && sub[1] == target[1] {
fmt.Println("yeah")
}
}
}
使用myMapasaa你將不會得到任何輸出,而使用myMapasbb你將打印出“Yeah”。
如果最里面的切片變長,您也應該將檢查步驟作為一個循環來執行,而不是像那樣硬編碼。
TA貢獻1797條經驗 獲得超6個贊
地圖僅按鍵索引。這意味著找到aor既便宜又容易(理想情況下是恒定的時間復雜度) b,但更難找到一個值(線性時間復雜度)。
因此,它是幾個 for 循環:
func find(searchFor [][]int, m map[string][][]int) bool {
for _, v := range m {
if sliceEq(v, searchFor) {
return true
}
}
return false
}
func sliceEq(a, b [][]int) bool {
if len(a) != len(b) {
return false
}
for i := range a {
if a[i] != b[i] {
return false
}
}
return true
}
- 2 回答
- 0 關注
- 282 瀏覽
添加回答
舉報
