Largest Number

来源:互联网 发布:哪有培训seo 编辑:程序博客网 时间:2024/06/07 01:45

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.)

可以转换为一个字符串数组来处理,难点是字符串的排序,需要自己定义排序方法,

可以重写java中sort的比较方法。

public String largestNumber(int[] nums) {StringBuffer sb=new StringBuffer();String[] s=new String[nums.length];for(int i=0;i<nums.length;i++)s[i]=String.valueOf(nums[i]);Arrays.sort(s, new Comparator<String>() {public int compare(String s1,String s2){String leftRight=s1+s2;String rightLeft=s2+s1;return leftRight.compareTo(rightLeft);}});for(String s1:s)sb.insert(0,s1);while(sb.charAt(0)=='0'&&sb.length()>1)sb.deleteCharAt(0);return sb.toString();}

0 0
原创粉丝点击