题目链接:217.存在重复元素
题目描述
难度 简单 描述 给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 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 {
/**
* @param Integer[] $nums
* @return Boolean
*/
function containsDuplicate($nums) {
$dataCheck = $nums;
for ($i = 0; $i < count($nums); $i++) {
$check = $nums[$i];
unset($dataCheck[$i]);
if (in_array($check, $dataCheck)) {
return true;
}
}
return false;
}
}
其他优质解法
先去重,判断去重后的长度是否比之前的长度短,是则说明有重复
class Solution {
/**
* @param Integer[] $nums
* @return Boolean
*/
function containsDuplicate($nums) {
$unique = array_unique($nums);
if (count($nums) > count($unique)) {
return true;
}
return false;
}
}
这个解法还可以精简为一行代码:
class Solution {
/**
* @param Integer[] $nums
* @return Boolean
*/
function containsDuplicate($nums) {
return count($nums) != count(array_unique($nums));
}
}