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

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

179. Largest Number

   

  • Total Accepted: 65743
  • Total Submissions: 304090
  • Difficulty: Medium
  • Contributors: Admin

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.

Credits:

Special thanks to  for adding this problem and creating all test cases.

【题目分析】

给定一个非负数的数组,返回由这个数组中的数组合构成的最大的数,由于所构成的数值可能很大,所以以字符串的形式返回。

【思路】

这实际上是一个对字符串排序的题目,如果我们把给定的数组按照某种方式排序,然后再把结果给组合起来,那么就可以得到我们想要的结果。那么如何排序呢?

给定两个字符串s1 = "30", s2 = "34",我们尝试他们组成数值的组合"3034"和"3430","3430" > "3034". 因此"34" > "30".

再比如s1 = "9", s2 = "30",我们尝试他们组成数值的组合"309"和"930","930" > "309". 因此"9" > "30".

【java代码】

代码中我们新建了一个构造器,通过这个构造器来对字符串数组进行排序,然后用stringbuilder把排序后的字符串组合到一起得到最后的结果。

1 public class Solution { 2     public String largestNumber(int[] nums) { 3         if(nums == null || nums.length == 0) return ""; 4          5         String[] s_nums = new String[nums.length]; 6          7         for(int i = 0; i < nums.length; i++) { 8             s_nums[i] = String.valueOf(nums[i]); 9         }10         11         Comparator
comp = new Comparator
() {12 public int compare(String str1, String str2) {13 String s1 = str1 + str2;14 String s2 = str2 + str1;15 return s2.compareTo(s1);16 }17 };18 19 Arrays.sort(s_nums, comp);20 21 if(s_nums[0].charAt(0) == '0') return "0";22 23 StringBuilder sb = new StringBuilder();24 for(String s : s_nums) {25 sb.append(s);26 }27 28 return sb.toString();29 }30 }

 

转载于:https://www.cnblogs.com/liujinhong/p/6395376.html

你可能感兴趣的文章
宏定义
查看>>
Nginx05---负载均衡 upsteam
查看>>
ubuntu12.04 串口登录系统配置
查看>>
poj3061
查看>>
linux--多进程进行文件拷贝
查看>>
笔记:git基本操作
查看>>
HDU2255 奔小康赚大钱 (最大权完美匹配) 模板题【KM算法】
查看>>
CodeForces 510C Fox And Names (拓扑排序)
查看>>
1231作业
查看>>
【Docker】mesos如何修改hostport默认端口范围?
查看>>
子shell以及什么时候进入子shell
查看>>
Linux系统下Memcached的安装以及自启动
查看>>
P4实验问题 解决python模块导入
查看>>
函数基础
查看>>
linux安装配置阿里云的yum源和python3
查看>>
spring-boot2.x Application properties属性配置
查看>>
C/C++中const关键字 2014-03-20 15:30 401人阅读 评论(0) 收藏...
查看>>
grep的用法
查看>>
stm32-浅谈IIC
查看>>
程序输入幸运数
查看>>