Table des matières
有没有复杂度为O(n)的二维数组合并去重算法
Dec 05, 2016 pm 01:44 PM
php
算法
有没有复杂度为O(n)的二维数组合并去重算法
回复内容:
有没有复杂度为O(n)的二维数组合并去重算法
$a = [ ['id'=>1], ['id'=>2], ['id'=>3], ['id'=>4], ['id'=>5], ['id'=>6] ]; $b = [ ['id'=>5], ['id'=>6], ['id'=>7], ]; $c = [ ['id'=>8], ['id'=>9] ]; function array_unique_merge() { $params = func_get_args(); $result = []; $hashmap = []; $arr_count = count($params); for($i = 0; $i<$arr_count; $i++) { foreach($params[$i] as $key => $val) { $md5 = md5(json_encode($val)); if (!isset($hashmap[$md5])) { $hashmap[$md5] = true; $result[] = $val; } } } return $result; } print_r(array_unique_merge($a, $b, $c));
Copier après la connexion
我只是贴出来一下我的想法可以这么做。如果n
指的是所有数组的元素数量之和。
这个必须要用2循环,对n的定义应该是多个关联数组的元素之和,双循环就算是O(n)了
serialize以后当作hash比较,这个思路呢?手机我就不写代码了…
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines
By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
Difficulté à mettre à jour la mise en cache des pages Web officielles du compte: comment éviter l'ancien cache affectant l'expérience utilisateur après la mise à jour de la version?
3 Il y a quelques semaines
By 王林
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds Tags

Article chaud
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines
By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
Difficulté à mettre à jour la mise en cache des pages Web officielles du compte: comment éviter l'ancien cache affectant l'expérience utilisateur après la mise à jour de la version?
3 Il y a quelques semaines
By 王林
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Comment configurer Visual Studio Code (VS Code) pour le développement PHP
