博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
179. Largest Number
阅读量:4582 次
发布时间:2019-06-09

本文共 1455 字,大约阅读时间需要 4 分钟。

题目:

Given a list of non negative integers, arrange them such that they form the largest number.

For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330.

Note: The result may be very large, so you need to return a string instead of an integer.

链接:

6/20/2017

最初的想法是改动MSD来排序,但是如果位数不一样需要补前一个高位的char,而不是'',很麻烦。

参考别人的sort方法,很好很强大。

注意:

1. Arrays.sort(), Comparator接口当中要实现compare函数

2. 当输入全是0时返回0

1 public class Solution { 2     public String largestNumber(int[] nums) { 3         if (nums == null || nums.length == 0) { 4             return ""; 5         } 6         String[] numsInString = new String[nums.length]; 7          8         for (int i = 0; i < nums.length; i++) { 9             numsInString[i] = Integer.toString(nums[i]);10         }11         Arrays.sort(numsInString, new Comparator
() {12 public int compare(String s1, String s2) {13 String s1s2 = s1 + s2;14 String s2s1 = s2 + s1;15 return s1s2.compareTo(s2s1);16 }17 });18 if (numsInString[numsInString.length - 1].equals("0")) {19 return "0";20 }21 StringBuilder sb = new StringBuilder();22 for (int i = numsInString.length - 1; i >= 0; i--) {23 sb.append(numsInString[i]);24 }25 return sb.toString();26 }27 }

也可以比较的时候直接返回reverse order

Java 8的简介写法

更多讨论

转载于:https://www.cnblogs.com/panini/p/7061434.html

你可能感兴趣的文章
multi_index_container性能测试
查看>>
【阿里云产品公测】结构化数据服务OTS之JavaSDK初体验
查看>>
AngularJs学习笔记--IE Compatibility 兼容老版本IE
查看>>
sql server还原数据库文件(.bak)常见问题解决办法笔记
查看>>
列表,元组,字典的常规操作及内置方法
查看>>
LayoutInflater介绍及例子
查看>>
python中星号变量的几种特殊用法
查看>>
centreon 画图x轴乱码
查看>>
初学AFNetWorking笔记
查看>>
团队项目开发总结
查看>>
架构师养成记--13.代码层面用信号量做限流(转)
查看>>
java int转integer方法
查看>>
内存泄漏的常见应用领域
查看>>
[.NET开发] C# 如何更改Word语言设置
查看>>
hdu4578线段树区间更新
查看>>
kafka-Streams
查看>>
ROS2 MAC OS Install
查看>>
SQLServer 基础
查看>>
SQL 查询横表变竖表
查看>>
异常处理.
查看>>