Appearance
0217-存在重复元素
https://leetcode.cn/problems/contains-duplicate
给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 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
思路1:暴力法
暴力法循环两次数组,发现相同的数字则返回 true, 循环结束则返回 false, 时间复杂度 O(n^2)
参考代码
csharp
public class Solution {
public bool ContainsDuplicate(int[] nums) {
//暴力法循环两次
for(int i=0; i<nums.Length-1; i++){
for(int j=i+1;j<nums.Length; j++){
if(nums[i] == nums[j]){
return true;
}
}
}
return false;
}
}
思路2:字典缓存
优化解法:使用字典缓存数子,每次循环检测字典中是否存在相同数字,是返回 true, 循环结束则 false
参考代码
csharp
public class Solution {
public bool ContainsDuplicate(int[] nums) {
Dictionary<int,int> dict = new Dictionary<int,int>();
for(int i=0; i<nums.Length; i++){
if(dict.ContainsKey(nums[i])){
return true;
}
else{
dict.Add(nums[i],nums[i]);
}
}
return false;
}
}
AlgoPress