복잡도가 O(n)인 2차원 배열 병합 및 중복 제거 알고리즘이 있나요
복잡도가 O(n)인 2차원 배열 병합 및 중복 제거 알고리즘이 있나요
<code class="php">$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));</code>
그냥 어떻게 하면 좋을지 제 생각을 포스팅해봅니다. n
이 모든 배열의 요소 개수의 합을 의미하는 경우.
이것은 2개의 루프를 사용해야 합니다. n의 정의는 여러 연관 배열 요소의 합이어야 합니다. 이중 루프는 O(n)
Serialize는 나중에 해시 비교로 사용됩니다. 이 아이디어는 무엇인가요? 휴대폰용 코드는 안쓰겠습니다...