从小白开始刷算法 Hash 哈希篇 leetcode.217

简介: 从小白开始刷算法 Hash 哈希篇 leetcode.217

217. 存在重复元素


给你一个整数数组 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)


哈希表解决思路


能否写出:能写出来

时间:10分钟之内

思路:

用哈希表不能有重复的特性直接完成了


// 仅是我的思路代码,leetcode上大神更厉害
class Solution {
    public boolean containsDuplicate(int[] nums) {
        HashSet<Integer> set = new HashSet<>();
        for (int num : nums) {
            if(!set.isEmpty()&&set.contains(num)){
                return true;
            }
            set.add(num);
        }
        return false;
    }
}

时间复杂度:O(n) nums长度

空间复杂度:O(n) nums长度

还有其他的思路解决,这里我就不列举代码了


暴力解决 没什么是循环解决不了的,有就加多一个循环的。(╯°Д°)╯︵ ┻━┻

思路:使用两层循环遍历数组,对每对元素进行比较,判断是否存在重复。时间复杂度为O(n^2)

排序解决

思路:先对数组进行排序,然后遍历数组,判断相邻元素是否相等。如果存在相等元素,则说明存在重复。时间复杂度取决于排序算法的复杂度,通常为O(nlogn),且不需要额外的空间。


相关文章
|
17天前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
35 3
|
1月前
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
37 0
|
19天前
|
算法
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
21 2
|
22天前
|
存储 算法 C#
C#哈希查找算法
C#哈希查找算法
|
30天前
|
算法 安全 Go
Python与Go语言中的哈希算法实现及对比分析
Python与Go语言中的哈希算法实现及对比分析
30 0
|
1月前
|
存储 算法 C++
【算法】哈希映射(C/C++)
【算法】哈希映射(C/C++)
|
3月前
|
算法 安全 JavaScript
安全哈希算法:SHA算法
安全哈希算法:SHA算法
48 1
安全哈希算法:SHA算法
|
3月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
49 6
|
3月前
|
JavaScript 算法 前端开发
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
435 1
|
3月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
48 1