前端算法-存在重复元素

简介: 前端算法-存在重复元素

题目

给你一个整数数组 nums 。如果这个数组中的某一个值在数组中出现至少两次,返回 true ;如果数组中每个元素互不相同,返回 false

输入: nums = [1,2,3,1]
输出: true
输入: nums = [1,2,3,4]
输出: false

题解

这道题其实就是一个判断数组中是否有重复值的操作,有重复值返回true,没有重复值返回false。我们在函数中先判断一下当前传入值是否为一个数组或当前入参中的长度必须大于0,如果其中一项不是则返回当前的出参nums,符合则继续往下执行,我们先声明一个arr变量,它的值是一个空数组,它的作用类似于仓库,在声明一个flag变量用于存放最终是否检测出重复值的结果,默认值是false,然后我们对出参nums数组进行循环,在循环中我们进行使用数组中的indexOf方法进行判断当前arr数组中是否有当前循环下nums数组的值,indexOf方法如果没有找到符合的值就会返回-1找到就会返回符合值的下标,我们以此作为判断条件,如果该方法返回的值不等于-1则说明找到了重复的值,这个时候我们将flag变量赋值为true,直接返回出去,如果返回值是-1,我们将当前循环下nums数组中的值通过push方法添加到arr数组中,如果循环完成后还没有发现重复的值,我们就将flag变量的值直接返回出去即可

 /**
   * @param {number[]} nums
   * @return {boolean}
   */
        var containsDuplicate = function (nums) {
            if (!Array.isArray(nums) || nums.length < 0) {
                return nums;
            }
            let arr = [];
            let flag = false;
            for (let i = 0; i < nums.length; i++) {
                if (arr.indexOf(nums[i]) != -1) {
                    flag = true;
                    return flag;
                } else {
                    arr.push(nums[i])
                }
            }
            return flag;
        };

坚持努力,无惧未来!

相关文章
|
2月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
50 3
|
4月前
|
算法
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
|
2月前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
40 4
|
3月前
|
存储 前端开发 JavaScript
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
本文介绍了JavaScript变量的声明和使用、标识符的命名规则、如何获取和操作HTML元素,以及JavaScript的鼠标事件处理,通过示例代码展示了这些基础知识点在实际开发中的应用。
46 2
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
|
3月前
|
前端开发
前端基础(十四)_隐藏元素的方法
本文介绍了几种在前端开发中隐藏元素的方法,包括使用`display:none`、`visibility:hidden`、`opacity:0`等CSS属性,并提供了相应的示例代码。此外,还提到了其他隐藏元素的技巧,如通过设置元素位置、使用`overflow`属性和`filter`属性以及`rgba`颜色值来实现元素的隐藏。
68 1
前端基础(十四)_隐藏元素的方法
|
2月前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
28 0
|
3月前
|
前端开发 JavaScript
前端基础(七)_DOM元素获取(getElementById、getElementsByTagName、getElementsByClassName、querySelector等)
本文介绍了如何在前端通过不同的方法获取DOM元素,包括getElementById、getElementsByTagName、getElementsByClassName、querySelector和querySelectorAll。
110 3
|
3月前
|
算法 前端开发 机器人
一文了解分而治之和动态规则算法在前端中的应用
该文章详细介绍了分而治之策略和动态规划算法在前端开发中的应用,并通过具体的例子和LeetCode题目解析来说明这两种算法的特点及使用场景。
一文了解分而治之和动态规则算法在前端中的应用
|
3月前
|
前端开发 JavaScript
前端ES5 | js —添加元素方法
前端ES5 | js —添加元素方法
|
3月前
|
算法 前端开发
一文了解贪心算法和回溯算法在前端中的应用
该文章深入讲解了贪心算法与回溯算法的原理及其在前端开发中的具体应用,并通过分析LeetCode题目来展示这两种算法的解题思路与实现方法。