本文共 772 字,大约阅读时间需要 2 分钟。
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
示例 1:
输入: [1,2,3,1]
输出: true
示例 2:
输入: [1,2,3,4]
输出: false
示例 3:
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
方法一:执行8.85%,内存94.32%
嵌套循环,发现重复的就退出。func containsDuplicate1(nums []int) bool { for i, v := range nums { for j := i + 1; j < len(nums); j++ { if v == nums[j] { return true } } } return false}
方法二:执行100.00%,内存50.00%
立牌坊~~,利用键名来找重复。 虽然这是一个常用的方法,但不得不承认,我受到以前php利用数组键名查重方式的影响更多些。func containsDuplicate2(nums []int) bool { temp := make(map[int]int, len(nums)) for _, v := range nums { if _, ok := temp[v]; ok { return true } else { temp[v] = 1 } } return false}
这题和前三题比,实在太入门,也再次验证了嵌套循环实在是影响执行效率。
另执行效率和内存占用的数据,每次的测试结果都有些变化,一般执行效率的结果波动比较大。
转载地址:http://rvkpi.baihongyu.com/