输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解法1
1.数组排序,使用自定义排序规则是 a.b>b.a a 和 b互换位置
2.usort函数的使用function costomcomp(a,b)return a.b > b.a
usort(arr,'costomcomp')
return implode('',arr)解法2:冒泡法
1.循环外层 i
2.内层循环 j,判断条件是j=i+1;j<arr.length;j++
3.内层调换 arr[i].arr[j] > arr[j].arr[i] 调换位置

<?php
function customComp($a,$b){return intval($a.''.$b) > intval($b.''.$a);
}
//解法1:自定义排序
function PrintMinNumber($numbers)
{usort($numbers,'customComp');return intval(implode('',$numbers));
}
$arr=array(3,32,321);
$result=PrintMinNumber($arr);
var_dump($result);$result=PrintMinNumber2($arr);
var_dump($result);//解法2:冒泡排序
function PrintMinNumber2($arr)
{$length=count($arr);for($i=0;$i<$length;$i++){for($j=$i+1;$j<$length;$j++){if(intval($arr[$i].''.$arr[$j])>intval($arr[$j].''.$arr[$i])){$temp=$arr[$i];$arr[$i]=$arr[$j];$arr[$j]=$temp;}   }   }   return intval(implode('',$arr));
}

转载于:https://www.cnblogs.com/taoshihan/p/9671792.html

[PHP] 算法-把数组排成最小的数的PHP实现相关推荐

  1. 数据结构与算法--将数组排成最小的数

    将数组排成最小的数 题目:输入一个正整数的数组,将数组中所有数字拼接在一起排列成一个新的数,打印能拼接出来的所有数字中最小的一个, 案例:输入数组{12,4,55},则能打印出最小的数组是:12455 ...

  2. 算法:把数组排成最小的数

    * @Description 把数组排成最小的数* @问题:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这 ...

  3. printf打印数组_(45)C++面试之把数组排成最小的数

    // 面试题45:把数组排成最小的数 // 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼 // 接出的所有数字中最小的一个.例如输入数组{3, 32, 321},则打印出这3 ...

  4. 【剑指offer-Java版】33把数组排成最小的数

    把数组排成最小的数 难点在于比较规则的确定以及比较规则的正确性证明 比如:仅仅是局部的两个数字的顺序较小,如何保证整个数组按此规则进行排序后达到全局的较小 书中关于这一点的证明直接用的反证法,忘的差不 ...

  5. 33:把数组排成最小的数

    /*** 面试题33:把数组排成最小的数* 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这三个数字能排成的 ...

  6. 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格

    一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...

  7. 【LeetCode】剑指 Offer 45. 把数组排成最小的数

    [LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...

  8. 列表转化成数组_30. 把数组排成最小的数

    把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为3213 ...

  9. 面试题45. 把数组排成最小的数

    题目: 面试题45. 把数组排成最小的数 题解: 1. 题解一: 2. 题解二: * 解题思路:* 先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来.关 ...

最新文章

  1. python控制结构实训_《python 从入门到精通》§5 控制结构
  2. loj.ac:#10024. 「一本通 1.3 练习 3」质数方阵
  3. 【转】Android OTA 升级之一:编译升级包
  4. hdu 4046 Panda 线段树
  5. Python(7):__init__.py
  6. js回调函数的理解(轉)
  7. Ant Build.xml
  8. JAVA11 - ZGC 特性
  9. WPF 可触摸移动的ScrollViewer控件
  10. 扩展可以支持枚举类型的DorpDownList控件
  11. 5.Knockout.Js(自定义绑定)
  12. UVA10344 23 out of 5【暴力+DFS】
  13. 一个极简的RePlugin
  14. 够快云库轻松解决文件复制速度过慢
  15. 【性能优化实战】4次版本迭代,我们将项目性能提升了360倍!
  16. GitHub怎么搜索项目
  17. 互联网30年,泡沫如梦,一个个泡沫和风口过后,会是什么样的结局
  18. 剑指Offer-22反转链表
  19. EL表达式处理字符串
  20. linux 移除、加载SATA盘

热门文章

  1. javascript getBoundingClientRect()获取元素四个边相对于窗口或文档的位置
  2. C# 读取word2003 并且显示在界面上的方法
  3. tensorflow学习5----GAN模型初探
  4. Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
  5. 1.使用Dotnet core命令建立并且运行项目。
  6. express 项目文件目录说明及功能描述
  7. java线程基础(一些常见多线程用法)
  8. 小猿圈学习Python字符串操作--字符串分割函数
  9. 修复 github 项目的语言属性
  10. PHP入门part1