亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用哈希圖在戈朗中查找重復數字

使用哈希圖在戈朗中查找重復數字

Go
慕尼黑8549860 2022-09-19 17:16:27
我想問一下在戈朗找到重復如果在蟒蛇,我可以這樣做def findDuplicate(data):  seen = []  for number in data:    if number in seen:      print(number)    seen.append(number)     print(seen)data = [1,2,4,5,6,4]findDuplicate(data)#expected output 4在golang中是否有任何類似的功能,例如python上的“如果看到數字”?謝謝
查看完整描述

2 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

您可以循環訪問數據并寫入地圖(如果地圖不是重復的)。并附加到重復切片(如果地圖中已存在)。示例代碼如下所示。

注意:如果您有多個具有相同值的重復項,則此代碼將顯示所有多個重復項。如果您需要查看一次相同的重復值,則應更改此值


package main


import (

    "fmt"

)


func main() {

    data := []int{1,2,4,5,6,4}

    findDuplicates(data)

}


func findDuplicates(data []int)  {

    values := make(map[int]struct{})

    var duplicates []int

    for _, d := range data {

        if _, ok := values[d]; ok {

            duplicates = append(duplicates, d)

            continue

        }


        values[d] = struct{}{}

    }


    fmt.Println(duplicates) // Output: [4]

}

游樂場


查看完整回答
反對 回復 2022-09-19
?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

您正在尋找地圖


用法示例:


func findDuplicate(data []int) {

    uniq := map[int]bool{}

    for _, i := range data {

        if uniq[i] {

            fmt.Printf("found duplicate %v", i)

        }

        uniq[i] = true

    }

}

用法示例:


func findDuplicate(data []int) {

    uniq := map[int]bool{}

    for _, i := range data {

        if uniq[i] {

            fmt.Printf("found duplicate %v", i)

        }

        uniq[i] = true

    }

}


查看完整回答
反對 回復 2022-09-19
  • 2 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號