题目描述
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。
示例 1:
输入:nums = [1,2,3,1]
输出:true
示例 2:
输入:nums = [1,2,3,4]
输出:false
示例 3:
输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/contains-duplicate
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
哈希表法:
算法思路:
1.遍历数组
1.如果字典里存在就返回真
2.如果不存在就直接存入字典中
代码:
Q:这里能用原地交换法?
A:不能。 因为使用原地交换法的一个很关键的条件是:
你的数值要比你数组所拥有的数的数量要小:
value<(n-1).
排序法:
算法思路:
思路一:
从小到大排序一遍
如果有重复的那么,重复的肯定是相邻的。
两层遍历数组
1.遍历数组
1.遍历数组
1.如果前一个数等于后面的数就返回真
2.如果前一个数比后面的大就交换数值
简单的示例都能通过,不过最后提交不能通过,因为时间太长了。
思路二:
从小到大排序一次
如果有重复的那么,重复的肯定是相邻的。
1.排序
2.遍历排序后的数组
1.如果相邻的相等就返回
题目标签
- (19号)基础的排序算法实现
- (19号)高频数组题