问个算法题 删除数组中连续重复的值

原数组:
$a = [“加”,”加”,”加”,”离”,”离”,”加”]

现在需要给 只要数组连续就删除保留一个,数组元素只有加和离两个值,做到数组元素间隔组成

比如上面的数组经过算法之后变成 [“加”,”离”,”加”] 这样

问个算法题 删除数组中连续重复的值

(ps) 需要有个高校点的算法 我自己写了个递归的 但是数据一多 就转圈了 很慢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

直接一个循环就好了, 代码大概如下

<?php

$a = ['加', '加', '加', '离', '离', '加'];

$last = '';
$curr = '';


$result = [];
foreach ($a as $v) {
    $curr = $v;

    if ($last !== $curr) {
        $result[] = $curr;
    }

    $last = $curr;
}


var_dump($result);
1年前
讨论数量: 3

直接一个循环就好了, 代码大概如下

<?php

$a = ['加', '加', '加', '离', '离', '加'];

$last = '';
$curr = '';


$result = [];
foreach ($a as $v) {
    $curr = $v;

    if ($last !== $curr) {
        $result[] = $curr;
    }

    $last = $curr;
}


var_dump($result);
1年前

连续重复的,不需要递归啊。循环一次就行了。记录前一个值,如果当前值跟前一个不一样,就放入结果数组

1年前

直接一个循环就好了, 代码大概如下

<?php

$a = ['加', '加', '加', '离', '离', '加'];

$last = '';
$curr = '';


$result = [];
foreach ($a as $v) {
    $curr = $v;

    if ($last !== $curr) {
        $result[] = $curr;
    }

    $last = $curr;
}


var_dump($result);
1年前

array_unique

1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!