如何在数组 Golang 中找到不重复的项目

我有一个输入整数数组,它只有一个非重复数字,如 {1,1,3,2,3}。输出应显示非重复元素,即 2。


func main() {

    arr := make([]string, 0)

    scanner := bufio.NewScanner(os.Stdin)

    for {

        scanner.Scan()

        text := scanner.Text()

        if len(text) != 0 {

            arr = append(arr, text)

        } else {

            break

        }

    }

    uniq := Unique(arr)

    fmt.Println(uniq)

}


func Unique(arr []string) int {

    var uni int

    for i := 0; i < len(arr); i++ {

        for j := i + 1; j < len(arr); j++ {

            if(arr[i] != arr[j]){

                uni = i

            }

        }

    }

    return uni

}


白衣染霜花
浏览 189回答 1
1回答

泛舟湖上清波郎朗

1.,它更像是一个数学问题。2.,您始终应该将数组中存在的所有唯一整数作为@whitespace 提到的。但它更像是O(2n)而不是O(n^2)。您应该遍历原始数组,然后遍历长度为 <= n 的映射(在最坏的情况下n,您的数组中有唯一项)。我在这里创建了一个 go-playground 示例。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go