zoukankan      html  css  js  c++  java
  • 面试题21:调整数组顺序使奇数位于偶数前面

    NowCoder

    <?php
    header("content-type:text/html;charset=utf-8");
    /*
     * 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。P209
     */
    //第一种方法:先排序,然后输出前k个值
    function GetLeastNumbers_Solution1($input, $k)
    {
        // write code here
    
        $array = [];
        if($input == null || $k>count($input)){
    
            return $array;
        }
        sort($input);
     //   print_r($arr);
        for($i = 0;$i<$k;$i++){
            echo "===";
            $array[] = $input[$i];
        }
        return $array;
    }
    
    //第二种方法
    
    //第三种方法:利用大根堆数据结构
    function GetLeastNumbers_Solution3($input, $k){
        $array = [];
        if($input == null || $k>count($input)){
            return $array;
        }
        $maxHeap = new SplMaxHeap();
        for($i = 0;$i < count($input);$i++){
            $maxHeap->insert($input[$i]);
            if ($k < $maxHeap->count()){
                $maxHeap->extract();
            }
    
        }
        foreach ($maxHeap as $value){
            $array[] = $value;
        }
        return array_reverse($array);
    }
    
    $input = [4,5,1,6,2,7,3,8];
    
    print_r(GetLeastNumbers_Solution3($input,4));
  • 相关阅读:
    CSS深入之第四天
    CSS之第三天总结
    第二天对CSS的学习
    开始走进CSS世界
    Hbuilder实用技巧
    项目总结
    CSS3的chapter6
    CSS3的chapter5
    CSS3的chapter4
    CSS3的chapter3
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10198290.html
Copyright © 2011-2022 走看看