leetcode179. 最大数
生活随笔
收集整理的這篇文章主要介紹了
leetcode179. 最大数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一組非負(fù)整數(shù),重新排列它們的順序使之組成一個(gè)最大的整數(shù)。
示例 1:
輸入: [10,2]
輸出: 210
示例?2:
輸入: [3,30,34,5,9]
輸出: 9534330
說(shuō)明: 輸出結(jié)果可能非常大,所以你需要返回一個(gè)字符串而不是整數(shù)。
思路:貪心,對(duì)于兩個(gè)字符串,如果a+b<b+a,則交換位置。整體按這個(gè)標(biāo)準(zhǔn)排序即可。
有時(shí)候現(xiàn)場(chǎng)一時(shí)證明不了想的貪心策略是否正確,這時(shí)可以先嘗試一下到底對(duì)不對(duì),萬(wàn)一對(duì)了就賺了。
證明:
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;} }?
總結(jié)
以上是生活随笔為你收集整理的leetcode179. 最大数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。