217. 存在重复元素

地址:https://leetcode-cn.com/problems/contains-duplicate/

<?php

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

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

    /**
     使用array_count_values内置函数
     */
    function containsDuplicate1($nums) {
        if (empty($nums)) return false;
        $arr = array_count_values($nums);
        foreach ($arr as $k) {
            if ($k > 1) {
                return true;
            }
        }
        return false;
    }

    //判断唯一值后的数组个数是否和原数组个数一样
    function containsDuplicate2($nums) {
        if (count(array_unique($nums)) != count($nums)) {
            return true;
        }
        return false;

    }

    //创建一个新空间去存放已经便利的元素
    function containsDuplicate($nums) {
        $hash = [];

        for ($i = 0, $count = count($nums); $i < $count; $i++) {
            if (isset($hash[$nums[$i]])) {
                return true;
            }
            $hash[$nums[$i]] = '';
        }

        return false;
    }
}

$a = [1,2,3,1];
$solution = new Solution();
var_dump($solution->containsDuplicate($a));

 

posted @ 2020-04-16 18:10  花花妹子。  阅读(156)  评论(0编辑  收藏  举报