-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathContainsDuplicateII.php
49 lines (39 loc) · 1.06 KB
/
ContainsDuplicateII.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
namespace QueueAndStack\HashMap\ContainsDuplicateII;
// 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。
//
// 示例 1:
//
// 输入: nums = [1,2,3,1], k = 3
// 输出: true
// 示例 2:
//
// 输入: nums = [1,0,1,1], k = 1
// 输出: true
// 示例 3:
//
// 输入: nums = [1,2,3,1,2,3], k = 2
// 输出: false
class Solution
{
/**
* @param Integer[] $nums
* @param Integer $k
* @return Boolean
*/
public function containsNearbyDuplicate($nums, $k)
{
$indexMap = [];
for ($i = 0, $l = count($nums); $i < $l; ++ $i) {
$val = $nums[$i];
if (
array_key_exists($val, $indexMap) &&
($i - $indexMap[$val]) <= $k
) {
return true;
}
$indexMap[$val] = $i;
}
return false;
}
}