問題描述
給定一組非負整數 nums,重新排列每個數的順序(每個數不可拆分)使之組成一個最大的整數,
注意:輸出結果可能非常大,所以你需要回傳一個字串而不是整數,
代碼
class Solution { public String largestNumber(int[] nums) { String[] h=new String[nums.length]; for(int i=0;i<nums.length;i++) h[i]=String.valueOf(nums[i]); Arrays.sort(h,new Comparator<String>(){ @Override public int compare(String a,String b){ if (a.charAt(0)!= b.charAt(0)) { return b.charAt(0) - a.charAt(0); } String l1=a+b; String l2=b+a; return l2.compareTo(l1); } }); if(h[0].charAt(0)=='0') return "0"; StringBuilder sb=new StringBuilder(); for(String ky:h) sb.append(ky); return sb.toString(); } } 值得注意的:1、Arrays.sort(int[] a)
這種形式是對一個陣列的所有元素進行排序,并且是按從小到大的順序,
2、Arrays.sort(int[] a, int fromIndex, int toIndex)
這種形式是對陣列部分排序,也就是對陣列a的下標從fromIndex到toIndex-1的元素排序,注意:下標為toIndex的元素不參與排序哦!
3、public static void sort(T[] a,int fromIndex,int toIndex, Comparator c)
上面有一個拘束,就是排列順序只能是從小到大,如果我們要從大到小,就要使用這種方式
重寫comparator,用來比較兩個字串組合的大小比較,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279201.html
標籤:其他
上一篇:Nginx核心知識100講,百萬并發下的性能優化之道
下一篇:理解Nginx負載均衡
