題目

Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.

  • 題意: 判斷陣列中是否有重複的值

解法

  • 解法: 透過map資料結構,找出在陣列中是否有重複的值
func containsDuplicate(nums []int) bool {
	m := map[int]bool{}
	for _, v := range nums {
		if _, exist := m[v]; exist {
			return true
		}
		m[v] = true
	}
	return false
}
  • 加些測試,看看結果是不是如預期
import (
	"github.com/stretchr/testify/assert"
	"testing"
)

func Test_containsDuplicate(t *testing.T) {
	assert.Equal(t, true, containsDuplicate([]int{1, 2, 3, 1}))
	assert.Equal(t, false, containsDuplicate([]int{1, 2, 3, 4}))
	assert.Equal(t, true, containsDuplicate([]int{1, 1, 1, 3, 3, 4, 3, 2, 4, 2}))
}

參考連結