首页 > 代码库 > Largest Number
Largest Number
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.
注意:
1. 这里的比较方法是如果 a + b > b + a 则 a > b , 即 比较 30 和 34 , 因为 3034 < 3430, 所以34 比 30 大。
2. priorityqueue 默认是从小到大输出的。 所以在comparator里面 大的return -1!
1 public class Solution { 2 3 public String largestNumber(int[] num) { 4 PriorityQueue<Integer> pq = new PriorityQueue<Integer>( 5 new Comparator<Integer>() { 6 public int compare(Integer a, Integer b){ 7 StringBuilder sb = new StringBuilder(); 8 sb.append(a); 9 sb.append(b);10 int first = Integer.valueOf(sb.toString());11 sb = new StringBuilder();12 sb.append(b);13 sb.append(a);14 int second = Integer.valueOf(sb.toString());15 if(first > second) return -1;16 else if(first == second) return 0;17 else return 1;18 }19 }20 );21 StringBuilder sb = new StringBuilder();22 for(int i = 0; i < num.length; i ++){23 pq.add(num[i]);24 }25 for(int i = 0; i < num.length; i ++){26 sb.append(pq.poll());27 }28 return sb.charAt(0) == ‘0‘ ? new String("0") : sb.toString();29 }30 }
Largest Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。