Leetcode之PHP版题目解析(217. Contains Duplicate)
2019-3-13 星期三 开始吧
题目描述
给定一个整形的数组,查找数组中是否有重复的项.如果数组中任何数出现至少两次,我们返回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()
运行结果
欢迎给出你们的想法.
No Comments