php实现把数组排成最小的数(核心是排序)(看别人的代码其实也没那么难)(把php代码也看一下)(implode("",$numbers);)(usort)
一、总结
核心是排序
看别人的代码其实也没那么难
把php代码也看一下
implode:return implode("",$numbers); //2、类似于join,将数组转化为字符串
usort:自定义排序规则
二、php实现把数组排成最小的数
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
三、代码
代码一:java
1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.Comparator; 4 5 public class Solution { 6 public String PrintMinNumber(int [] numbers) { 7 int n; 8 String s=""; 9 ArrayList<Integer> list= new ArrayList<Integer>(); 10 n=numbers.length; 11 for(int i=0;i<n;i++){ 12 list.add(numbers[i]); 13 14 } 15 Collections.sort(list, new Comparator<Integer>(){ 16 17 public int compare(Integer str1,Integer str2){ 18 String s1=str1+""+str2; 19 String s2=str2+""+str1; 20 return s1.compareTo(s2); 21 } 22 }); 23 24 for(int j:list){ 25 s+=j; 26 } 27 return s; 28 29 } 30 }
代码二:php
1 <?php 2 3 function PrintMinNumber($numbers) 4 { 5 // write code here 6 usort($numbers, function($a,$b){ //1、排序数组 7 if("$a$b" > "$b$a") return 1; 8 return -1; 9 }); 10 return implode("",$numbers); //2、类似于join,将数组转化为字符串 11 }