function GetMaxDistance($arr) {
$map = array();
$maximumDistance = 0;
$size = count($arr);
for ($i = 0; $i < $size; $i++) {
if (!array_key_exists($arr[$i],$map)) {
$map[$arr[$i]] = $i;
echo "map[arr[i]]=" . json_encode($map[$arr[$i]]);
echo " arr[i]=" . strval($arr[$i]);
echo " i=" . strval($i),"\n";
}
else {
$maximumDistance = max($maximumDistance, $i - $map[$arr[$i]]);
echo "map[arr[i]]=" . json_encode($map[$arr[$i]]);
echo " i - map[arr[i]]=" . strval(($i - $map[$arr[$i]]));
echo " i=" . strval($i),"\n";
}
}
return $maximumDistance;
}
$arr = array(7, 1, 4, 3, 1, 5, 3, 4, 9, 1, 3);
echo GetMaxDistance($arr);
/*
run:
map[arr[i]]=0 arr[i]=7 i=0
map[arr[i]]=1 arr[i]=1 i=1
map[arr[i]]=2 arr[i]=4 i=2
map[arr[i]]=3 arr[i]=3 i=3
map[arr[i]]=1 i - map[arr[i]]=3 i=4
map[arr[i]]=5 arr[i]=5 i=5
map[arr[i]]=3 i - map[arr[i]]=3 i=6
map[arr[i]]=2 i - map[arr[i]]=5 i=7
map[arr[i]]=8 arr[i]=9 i=8
map[arr[i]]=1 i - map[arr[i]]=8 i=9
map[arr[i]]=3 i - map[arr[i]]=7 i=10
8
*/