zoukankan      html  css  js  c++  java
  • 百度的面试题 合并两个有序的数组

     1 $a = array(1,3,6,10,29,37,44);
     2 $b = array(2,5,14,19,28,55,73);
     3 $c = array();
     4 
     5 $countA = count($a);
     6 $countB = count($b);
     7 
     8 $pointA = 0;
     9 $pointB = 0;
    10 
    11 while($pointA < $countA || $pointB < $countB){  //结束条件是两个数组的指针都大于数组的数量
    12     if($pointA < $countA && $pointB < $countB){  //分三种情况,两个数组都有数据
    13         if($a[$pointA] > $b[$pointB]){  //如果a数组中的大于b数组的,那么把小的一个放在c数组,然后b数组中的指针加1
    14             $c[] = $b[$pointB];
    15             //echo $pointB;
    16             $pointB++;
    17         }else{
    18             $c[] = $a[$pointA];   //否则的话把a数组的中数组放在c数组中,a的指针加1
    19             //echo $pointB;
    20             $pointA++;
    21         }
    22     }elseif($pointA >= $countA){  //a数组的没有数据了
    23         $c[] = $b[$pointB];
    24         $pointB++;
    25     }elseif($pointB >= $countB){
    26         $c[] = $a[$pointA];
    27         $pointA++;
    28     }
    29 }
    30 echo "<pre>";
    31 print_r($c);
  • 相关阅读:
    不要再胡思乱想了
    sqoop和mysql之间导出问题
    reids3.0安装文档
    java面试
    java面试2
    大数据面试题 ---阿善有用
    rdd-api整理
    RDD弹性分布式数据集特性总结
    spark-on-yarn配置参数
    资源调度
  • 原文地址:https://www.cnblogs.com/etata/p/5237705.html
Copyright © 2011-2022 走看看