Blogger Information
Blog 20
fans 0
comment 0
visits 19643
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
作业帮面试
大鱼
Original
1122 people have browsed it

一面

优惠券排序:一个优惠券有面额和到期时间两种属性,按照面额从大到小排列,如果面额相同,按照到期时间的从小到大的顺序排列
好久没有做过白板编程了,拿到题目的瞬间有点懵,想了好久才想出做法,真是对不起自己吹的牛逼,想到的是最简单最基本的快排(重点:快排的时间复杂度是O(nlogn))

<?php

        class Discount{   

            public $money; 

            public $time;  

             function __construct($money, $time)
             {       

                    $this->money = $money; 

                    $this->time = $time;
               }
        }

    $discounts = [];

    for ($i = 0; $i < 10; $i++) {
       $discount = new Discount(rand(1, 10), time() - rand(1111, 9999));
       array_push($discounts, $discount);
    }
    print_r($discounts);

    function quick_sort($ds){   

            if (count($ds) <= 1) {

                   return $ds;
              } else {
                           $left = [];
                           $right = [];      

                         for ($i = 1; $i < count($ds); $i++) {  

                             if ($ds[$i]->money > $ds[0]->money) {
                                   array_push($left, $ds[$i]);
                           } else if ($ds[$i]->money < $ds[0]->money) {
                               array_push($right, $ds[$i]);
                            } else {               

                                if ($ds[$i]->time <= $ds[0]->time) {
                                   array_push($left, $ds[$i]);
                               } else {
                               array_push($right, $ds[$i]);
                       }
                   }
               }
           $left = quick_sort($left);
          $right = quick_sort($right);     

          return array_merge($left, [$ds[0]], $right);
   }
}

$result = quick_sort($discounts);
print_r($result);

目前没有想到更好的方法,以后想到了或者遇到了在回来修改

MySQL联合索引
一直做得东西数据量都不大,所以没怎么用过索引,这次就正好被问到了,没答出来,这里记录一下
联合索引的好处,一是一个联合索引能抵好几个索引,二是联合索引可以根据最左原则当成单个索引去用

Linux日志分析
这一块是原来完全没有接触过的内容,面试官说了awk之后才知道有这么个好东西,比我平时用的grep好用多了,这里就不多做介绍了,感觉自己还是只记住了名字

二面

有一个文件,里面每一行都是一个url,写一个算法,读取出现最多的五条,及其出现的次数
白板编程,又懵了,硬着头皮写了一个

<?phpfunction make_file(){
   $urls = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'];
   $num = count($urls);
   $file = fopen('data.txt', "w");    for ($i = 0; $i < 1000; $i++) {
       fwrite($file, $urls[rand(0, $num - 1)] . "\n");
   }
   fclose($file);
}//make_file();function get_result($filename, $num){
   $arr = [];
   $file = fopen($filename, 'r');    while (!feof($file)) {
       $key = fgets($file);        if ($key != "") {
           array_push($arr, $key);
       }
   }
   fclose($file);
   $counts = array_count_values($arr);
   $results = [];
   $keys = array_keys($counts);
   print_r($keys);    for ($i = 0; $i < $num; $i++) {
       $key = $keys[0];        foreach ($keys  as $k) {            if ($counts["$k"] > $counts["$key"]) {
               $key = $k;
           }
       }
       $results["$key"] = $counts["$key"];        unset($counts["$key"]);
   }
   print_r($results);
}

get_result('data.txt', 5);


作者:血之君殇
链接:https://www.jianshu.com/p/e765e3822676
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post