Leetcode之PHP版题目解析(217. Contains Duplicate)


2019-3-13 星期三  开始吧

11dae363d94eccbf2d61daa6c23c39ef.png

给定一个整形的数组,查找数组中是否有重复的项.如果数组中任何数出现至少两次,我们返回true,如果没有重复,返回false.


Input: [1,2,3,1]
Output: true
Input: [1,2,3,4]
Output: false
Input: [1,1,1,3,3,4,3,2,4,2]
Output: true

第一版我先把数组排序,然后只要比较数组当前位置和他下一个位置是否相同,相同则true,不同false.时间复杂度O(n),空间复杂度O(1).


  /**
     * @param Integer[] $nums
     * @return Boolean
     */
    function containsDuplicate($nums) {

       sort($nums);
        for($i=0;$i<count($nums)-1;$i++) {
            if($nums[$i]==$nums[$i+1]) {
                return true;
            }
        }
        return false;
    }

第二版

 /**
     * @param Integer[] $nums
     * @return Boolean
     */
    function containsDuplicate($nums) {
        return ($nums !==array_unique($nums));
    }

利用PHP函数array_unique()


2c66879a5b6d2bafaf8fa6e1cf7921bf.png

欢迎给出你们的想法.


点赞 取消点赞 收藏 取消收藏

<< 上一篇: Laravel 电商项目代码初步体验

>> 下一篇: Laravel 5.8 模型策略自动解析示例