zoukankan      html  css  js  c++  java
  • 一维数字数组,拼接获取最大数字

    <?php
    // 要求: 给定一维数字数组,拼接获取最大数字,如  [4345,43,4,98,9]  ===>  9984434543

    $arr = [43,2,12,46,9,98,99,54];
    $newArr = [];
    $arr = array_map('strval',$arr);

    $len = count($arr);

    // 对数组进行排序
    for($i=0;$i<$len;$i++) {
    if(isset($arr[1])) {
    $n = $arr[0];
    $key = 0;
    // 获取最大数
    foreach($arr as $k=>$v) {
    $re = preNum($n,$v);
    if (!$re) {
    $n = $v;
    $key = $k;
    }
    }
    // 销毁已拼接数字
    unset($arr[$key]);
    // 排序: 重置键
    sort($arr);
    // 返回结果
    $newArr[] = $n;
    }elseif(isset($arr[0])) {
    $newArr[] = $arr[0];
    }
    }
    // 将数组进行join
    $res = implode($newArr);
    $res = intval($res);
    var_dump($res); // 结果为99998544643212

    /**
    * 功能: 如果 $n1 应排前,返回true , 否则返回false
    *
    * @param string $n1 数字字符串
    * @param string $n2 数字字符串
    */
    function preNum($n1,$n2) {
    $len1 = strlen($n1);
    $len2 = strlen($n2);

    // 如果位数一样,比较大小即可
    if($len1 == $len2) {
    if ($n1 < $n2) {
    return false;
    }else {
    return true;
    }
    }

    // 如果位数不一样 ,判断位数小的数字和另一个在位数相同情况下的大小
    $min = min($len1,$len2);
    $tmpNum1 = substr($n1,0,$min);
    $tmpNum2 = substr($n2,0,$min);
    if ($tmpNum1 > $tmpNum2) {
    return true;
    }elseif($tmpNum1 < $tmpNum2){
    return false;
    }else {
    // 拼接剩余部分,比较拼接后数字大小
    if ($len1 < $len2) {
    $split2 = substr($n2,$min) . $tmpNum1;
    $split1 = $tmpNum1 . substr($n2,$min);

    if ($split1 >= $split2) {
    return true;
    }
    }else {
    $split2 = substr($n1,$min) . $tmpNum1;
    $split1 = $tmpNum1 . substr($n1,$min);

    if ($split1 < $split2) {
    return true;
    }
    }
    return false;
    }
    }

    var_dump(preNum('4546','45')); // true

  • 相关阅读:
    Xcode7 真机调试步骤以及遇到的问题解决办法
    AndroidStudio .gitinore编写
    Android Studio Jar、so、library项目依赖
    Android studio导入eclipse项目混淆打包出错
    spring中ref属性与<ref/>标签
    NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.web.servlet.view.InternalResourceViewResolver' available
    Maven学习笔记
    Tomcat日志与Log4j日志
    Git笔记
    Tomcat学习
  • 原文地址:https://www.cnblogs.com/init-007/p/9464879.html
Copyright © 2011-2022 走看看