刚刚遇到一个棘手的算法问题,求解
求解
------解决方案--------------------$a = array(1,2,2,3,1,2,3,1,1);
$st = array(1 => 0);
$d = 1;
foreach($a as $v) {
@$st[$v]++;
if($v >= $d) {
$d = $v;
}else{
while($v < $d) {
unset($st[$d--]);
}
}
$r[] = join('.', $st);
}
print_r($r);
Array
(
[0] => 1
[1] => 1.1
[2] => 1.2
[3] => 1.2.1
[4] => 2
[5] => 2.1
[6] => 2.1.1
[7] => 3
[8] => 4
)
------解决方案--------------------不好意思,没看明白是个啥意思。……。。…。…………。……。。…。……。。…。……。……。………
------解决方案--------------------$a = array(1,2,2,3,1,2,3,1,1); 表示的是节点所在的层次
$st = array(1 => 0); 存储每层当前的序号
$d 表示当前的层次