存在重复元素(算法java)

简介: 存在重复元素(算法java)

存在重复元素(算法java)


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

提示:

1 <= nums.length <= 105

-109 <= nums[i] <= 109

这里说明一下,自己写了两种方法,最后一个是看的官方解法

哈哈哈(我是老六)

class Solution {
    public boolean 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;
        /**
        方法二:java Set自带去重,如果去重后的长度小于原长度,则返回true
         */
        // Set<Integer> res = new HashSet<Integer>();
        // for(int i:nums)
        //     res.add(i);
        // return res.size()<nums.length?true:false;
        /**
        方法三:排序,先从大到小排序,然后比较相邻元素是否相等
         */
        Arrays.sort(nums);
        int n = nums.length;
        for (int i = 0; i < n - 1; i++) {
            if (nums[i] == nums[i + 1]) {
                return true;
            }
        }
        return false;
    }
}

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/contains-duplicate

相关文章
|
1月前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
27天前
|
搜索推荐 算法 Java
手写快排:教你用Java写出高效排序算法!
快速排序(QuickSort)是经典的排序算法之一,基于分治思想,平均时间复杂度为O(n log n),广泛应用于各种场合。在这篇文章中,我们将手写一个Java版本的快速排序,从基础实现到优化策略,并逐步解析代码背后的逻辑。
35 1
|
24天前
|
存储 算法 Java
Arraylist 在 Java 中能容纳多少个元素?
【8月更文挑战第23天】
48 0
|
24天前
|
存储 Java
|
26天前
|
缓存 Java
Java本地高性能缓存实践问题之AsyncCache中移除一个缓存元素的问题如何解决
Java本地高性能缓存实践问题之AsyncCache中移除一个缓存元素的问题如何解决
|
26天前
|
缓存 Java
Java本地高性能缓存实践问题之使用Caffeine的Cache接口来查找一个缓存元素的问题如何解决
Java本地高性能缓存实践问题之使用Caffeine的Cache接口来查找一个缓存元素的问题如何解决
|
1月前
|
算法
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
|
6天前
|
Java 编译器 测试技术
|
1月前
|
Java API
|
17天前
|
设计模式 缓存 算法
揭秘策略模式:如何用Java设计模式轻松切换算法?
【8月更文挑战第30天】设计模式是解决软件开发中特定问题的可重用方案。其中,策略模式是一种常用的行为型模式,允许在运行时选择算法行为。它通过定义一系列可互换的算法来封装具体的实现,使算法的变化与客户端分离。例如,在电商系统中,可以通过定义 `DiscountStrategy` 接口和多种折扣策略类(如 `FidelityDiscount`、`BulkDiscount` 和 `NoDiscount`),在运行时动态切换不同的折扣逻辑。这样,`ShoppingCart` 类无需关心具体折扣计算细节,只需设置不同的策略即可实现灵活的价格计算,符合开闭原则并提高代码的可维护性和扩展性。
35 2