zoukankan      html  css  js  c++  java
  • 存在重复的元素

    此博客链接:https://www.cnblogs.com/ping2yingshi/p/12859215.html

    存在重复的元素(42min)

    题目链接:https://leetcode-cn.com/problems/contains-duplicate/submissions/

    给定一个整数数组,判断是否存在重复元素。

    如果任意一值在数组中出现至少两次,函数返回 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

    题解:

    一开始我想着想建一个数组,把给的数组中的数字作为新数组的下标,遍历数组,重复的数字就会使新数组的在此下标下数值和大于等于2,可是数组大小不确定。

           集合思路:

                         1.使用集合过滤重复的数字。

                         2.如果集合的长度和数组的长度相等,就说明没有重复数字。

                         3.如果集合长度和数组长度不相等,就说明有相等的元素。

    代码如下:

    class Solution {
        public boolean containsDuplicate(int[] nums) {
            int len=nums.length;
            if(len==1)
               return false;
          Set<Integer>  set=new HashSet<>();
            for(int i=0;i<len;i++)
                 set.add(nums[i]);
           if(len==set.size())
              return false;
            else
             return true;
        }
    }

     排序思想:先把数组排序,如果有重复的数字,那么相邻的数字一定相等。(但是超时)

      代码如下:

    class Solution {
        public boolean containsDuplicate(int[] nums) {
            int len=nums.length;
            if(len==1)
            return false;
            int k=0;
            for(int i=0;i<len-1;i++)
            {
                k=i;
                for(int j=i;j<len;j++)
                {
                    if(nums[k]>nums[j])
                    {
                        k=j;
                    }
                }
                int temp;
                temp=nums[i];
                nums[i]=nums[k];
                nums[k]=temp;
            }
             for(int i=0;i<len-1;i++)   
                 if(nums[i]==nums[i+1])
                    return true;
            return false;
        }
    }
  • 相关阅读:
    WEB前端开发规范文档
    MySQL笔记系列:数据库概述
    MySQL笔记系列:MySQL架构
    Centos6.4中Apache,MySQL,PHP 的安装
    Linux面试总结分享
    NFS网络文件共享服务介绍及案例
    Linux命令(7):cp
    Linux命令(6):cat
    Linux命令(5):vi
    Linux命令(4):touch
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/12859215.html
Copyright © 2011-2022 走看看