leetcode_Largest Number,leetcode_largest

來源:互聯網
上載者:User

leetcode_Largest Number,leetcode_largest

描述:

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.將數字轉換為字串

2.對字串數組進行升序排序

3.具體的定序為將兩個字串以str1+str2和str2+str1的方式拼接起來,然後比較兩個拼接後的字串即可

4.將排好序的字串數組拼接起來即為要求的最大整數字串

ps:剛開始走了好多彎路以比較短的字串為基準和比較長的字串迴圈比較,直至有不同大小的段為止,吃力不討好,最後也沒有算對^-^!

代碼:

public class Solution implements Comparator<String>{    public int compare(String str1,String str2)    {        String newStr1=str1+str2;        String newStr2=str2+str1;        return newStr2.compareTo(newStr1);    }    public String largestNumber(int[] nums) {        if(nums==null||nums.length==0)            return new String("");        if(nums.length==1)            return String.valueOf(nums[0]);        int len=nums.length;        String arr[]=new String[len];        for(int i=0;i<len;i++)        arr[i]=String.valueOf(nums[i]);        Arrays.sort(arr,new Solution());        StringBuilder sb=new StringBuilder();        for(int i=0;i<len;i++)            sb.append(arr[i]);        if(sb.charAt(0)=='0')            return "0";        return sb.toString();    }}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.