博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Golang面试考题记录 ━━ 存在重复 100.00%
阅读量:4116 次
发布时间:2019-05-25

本文共 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/

你可能感兴趣的文章
启动 LocalDB 和连接到 LocalDB
查看>>
Palindrome Number --回文整数
查看>>
Reverse Integer--反转整数
查看>>
Container With Most Water --装最多水的容器(重)
查看>>
Longest Common Prefix -最长公共前缀
查看>>
Letter Combinations of a Phone Number
查看>>
Single Number II --出现一次的数(重)
查看>>
Valid Parentheses --括号匹配
查看>>
Remove Element--原地移除重复元素
查看>>
Remove Duplicates from Sorted Array--从有序数组中移除重复元素
查看>>
Count and Say
查看>>
Gas Station
查看>>
Palindrome Partitioning --回文切割 深搜(重重)
查看>>
Valid Palindrome 简单的回文判断
查看>>
Pascal's Triangle -- 生成杨辉三角
查看>>
Pascal's Triangle II 生成杨辉三角中的某行
查看>>
Minimum Depth of Binary Tree -- 二叉树的最小深度 DFS 加剪枝
查看>>
Climbing Stairs 爬楼梯方法 动态规划
查看>>
Merge Two Sorted Lists 合并两个有序链表
查看>>
pow(x,n) 为什么错这么多次
查看>>