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);
  • 相关阅读:
    migration的报错
    路由与认证
    drf-请求与响应
    django-rest-framework
    Vue -- 基础
    Django -- Auth模块
    Django -- 中间件
    Django -- cookie与session
    Django--ajax
    Django -- 视图层
  • 原文地址:https://www.cnblogs.com/etata/p/5237705.html
Copyright © 2011-2022 走看看