最大值
给定一组非负整数 nums
,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。
注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
示例1:
输入:nums = [10,2]
输出:”210”
示例2:
输入:nums = [3,30,34,5,9]
输出:”9534330”
实现思路
使用排序方法进行比较时,比较两个字符串(设为A和B),以先后顺序拼接而成的两个字符串A+B和B+A,如果A+B更大,则A在前B在后,否则A在后B在前。由于int型数组没有自定义排序的功能,字符串有自定义的排序,那么我们首先将原数组转化为字符串数组。采用外部排序接口Comparator,对compare方法传入(a, b),返回(b+a).compareTo(a+b)。若b+a > a+b结果为1,并排序交换a和b的位置;若b+a < a+b则不交换。
代码实现
1 | public String largestNumber(int[] nums) { |
注:
compare用来比较排序两个参数,如果比较结果为1进行交换,其他不进行交换。
当后一个对象比当前对象大(o2.compareTo(o1) >0),返回结果值为1时,前后交换,说明是降序排列。
当后一个对象比当前对象小(o1.compareTo(o2) > 0),返回结果值为1时,前后交换,说明是升序排列。
最大值
# 推荐文章
1.absolute和relative定位
2.display:table-cell在布局上的应用
3.两列布局css
4.解决GitHub访问不了问题
5.Collection集合和Map集合
6.JDK,JRE和JVM
1.absolute和relative定位
2.display:table-cell在布局上的应用
3.两列布局css
4.解决GitHub访问不了问题
5.Collection集合和Map集合
6.JDK,JRE和JVM