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

Leetcode · curry · 于 24天前 发布 · 22 次阅读

题目描述

给定一个整形的数组,查找数组中是否有重复的项.如果数组中任何数出现至少两次,我们返回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()

本文由 curry 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。

共收到 0 条回复 php 算法
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
吴亲库里的深夜食堂