zoukankan      html  css  js  c++  java
  • 腾讯// 存在重复元素

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

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

    用Arrays.sort()方法先对数组进行排序,然后遍历数组找重复的数字。

    class Solution {
        public boolean containsDuplicate(int[] nums) {
            if(nums.length == 0) return false;
            Arrays.sort(nums);
            for(int i = 0; i < nums.length-1; i++){
                if(nums[i] == nums[i+1])
                    return true;
            }
            return false;
        }
    }

    遍历一次数组,遍历过程中,将每次遍历的数组元素按升序放到它相应的位置,那么这个元素必然>=它之前的元素。然后比较该元素与前一个元素是否相等。如果相等,则说明包含重复的元素。

    class Solution {
        public boolean containsDuplicate(int[] nums) {
            for(int i = 1; i < nums.length; i++){
                int j = i-1;
                int temp = nums[j+1];
                while(j>=0&&nums[j]>temp){
                    nums[j+1] = nums[j];
                    j--;
                }
                nums[j+1] = temp;
                if(j>=0&&nums[j] == nums[j+1]){
                return true;
                }
            }
            return false;
        }
    }
  • 相关阅读:
    POJ1064 浮点数二分答案
    2019牛客暑期多校训练营(第二场)H.Second Large Rectangle
    最大全1子矩阵的两种解法(例题:City Game HDU
    POJ
    Codeforces Round #588 (Div. 2) C
    1216E
    1221D
    BUY LOW, BUY LOWER, POJ
    Priest John's Busiest Day (2-sat)
    poj1080
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602496.html
Copyright © 2011-2022 走看看