leetcode179. 最大数
生活随笔
收集整理的這篇文章主要介紹了
leetcode179. 最大数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。
示例 1:
輸入: [10,2]
輸出: 210
示例?2:
輸入: [3,30,34,5,9]
輸出: 9534330
說明: 輸出結果可能非常大,所以你需要返回一個字符串而不是整數。
思路:貪心,對于兩個字符串,如果a+b<b+a,則交換位置。整體按這個標準排序即可。
有時候現場一時證明不了想的貪心策略是否正確,這時可以先嘗試一下到底對不對,萬一對了就賺了。
證明:
class Solution {private class LargerNumberComparator implements Comparator<String> {@Overridepublic int compare(String a, String b) {String order1 = a + b;String order2 = b + a;return order2.compareTo(order1);}}public String largestNumber(int[] nums) {String[] asStrs = new String[nums.length];for (int i = 0; i < nums.length; i++) {asStrs[i] = String.valueOf(nums[i]);}Arrays.sort(asStrs, new LargerNumberComparator());if (asStrs[0].equals("0")) {return "0";}String str = new String();for (String numAsStr : asStrs) {str += numAsStr;}return str;} }?
總結
以上是生活随笔為你收集整理的leetcode179. 最大数的全部內容,希望文章能夠幫你解決所遇到的問題。