两个有序数组,去重并按顺序显示
2017-03-28 11:42
148 查看
直接上代码。这里最后一次比较会有数组越界,幸运的是php并不会报错。
结果:
<?php $arr1 = [1,3,4,6,9,11,12,18,20]; $arr2 = [2,3,4,5,8,12,13,14,19,20]; $length = count($arr1) + count($arr2); $arr = []; $i=0;$j=0; while( --$length > 0) { if($arr1[$i] < $arr2[$j]) { $arr[$arr1[$i++]]++; } else { $arr[$arr2[$j++]]++; } } print_r(array_keys($arr));
结果:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 8 [7] => 9 [8] => 11 [9] => 12 [10] => 13 [11] => 14 [12] => 18 [13] => 19 [14] => 20 )
相关文章推荐
- 两个有序数组合并为一个有序数组
- 两个有序数组(有序段sorted run)简单归并算法的比较次数的分析
- 【合并两个有序的子数组】算法实现
- 给定两个有序数组求他们的中位数
- 求两个有序数组的中位数
- 将两个无序数组合并为有序链表
- java将两个有序数组合并成一个有序数组
- 二分求两个有序数组第k大的数
- 如何求两个有序数组的第K个数
- 求两个有序数组的中位数
- 在两个有序的数组中找第N个数,O(lgm+lgn)级
- 两个有序数组归并的平均比较次数的定量分析
- 合并两个有序数组
- 两个数字,1000个元素的有序数组和10个元素的无序数组,把他们整合成一个按照有序数组排序方式排序的有序数组
- 两个有序整形数组找出二者相同的元素和不同的元素
- 归并两个有序的顺序表
- 在两个有序的数组中找第N个数,二分查找 O(lgm+lgn)级
- 两个有序数组相关的算法
- 将两个数组组合成有序数组
- 两个有序的数组中找第N个数