成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[LintCode/LeetCode] Largest Number [Comparator的使用]

xietao3 / 371人閱讀

摘要:先將轉化為,否則無法使用,其實轉為也可以,這里用為例。然后就是最關鍵的一步創(chuàng)造一個,用以從大到小排列所有的元素。注意這里的順序不能變。再將排列好的元素放入一個里,然后將轉化為。

Problem

Given a list of non negative integers, arrange them such that they form the largest number.

Example

Given [1, 20, 23, 4, 8], the largest formed number is 8423201.

Note

先將nums[]轉化為String[],否則無法使用Comparator,其實轉為Integer[]也可以,這里用String為例。
然后就是最關鍵的一步:創(chuàng)造一個Comparator,用以從大到小排列所有的strs[]元素。注意:return (s2+s1).compareTo(s1+s2); 這里的順序不能變。
再將排列好的str[i]元素放入一個StringBuilder sb里,然后將sb轉化為String result。

如果這個result的第一個字符是0,那么我們不希望看到返回一個類似“000000000”的字符串,只要返回單字符的字符串"0"就可以了。
否則,返回result。

Solution
public class Solution {
    public String largestNumber(int[] nums) {
        String[] strs = new String[nums.length];
        for (int i = 0; i < nums.length; i++) {
            strs[i] = Integer.toString(nums[i]);
        }
        Arrays.sort(strs, new Comparator(){
            public int compare(String s1, String s2) {
                return (s2 + s1).compareTo(s1 + s2);
            }
            });
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < strs.length; i++) {
            sb.append(strs[i]);
        }
        String result = sb.toString();
        if (result.charAt(0) == "0") return "0";
        return result;
    }
}

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/65658.html

相關文章

  • [LintCode/LeetCode] Find Median From / Data Stream

    摘要:建立兩個堆,一個堆就是本身,也就是一個最小堆另一個要寫一個,使之成為一個最大堆。我們把遍歷過的數(shù)組元素對半分到兩個堆里,更大的數(shù)放在最小堆,較小的數(shù)放在最大堆。同時,確保最大堆的比最小堆大,才能從最大堆的頂端返回。 Problem Numbers keep coming, return the median of numbers at every time a new number a...

    zxhaaa 評論0 收藏0
  • [LintCode/LeetCode] Maximum Product Subarray

    摘要:這是一道簡單的動規(guī)題目,同步更新數(shù)組解決了為負數(shù)的問題。即使是求最小乘積子序列,也可以通過取和的最小值獲得。 Problem Find the contiguous subarray within an array (containing at least one number) which has the largest product. Example For example, g...

    meteor199 評論0 收藏0
  • [LintCode/LeetCode] Maximal Square

    摘要:類似這種需要遍歷矩陣或數(shù)組來判斷,或者計算最優(yōu)解最短步數(shù),最大距離,的題目,都可以使用遞歸。 Problem Given a 2D binary matrix filled with 0s and 1s, find the largest square containing all 1s and return its area. Example For example, given t...

    Drinkey 評論0 收藏0
  • [LintCode/LeetCode] Lowest Common Ancestor of BST/

    摘要:遞歸左右子樹,若左右子樹都有解,那么返回根節(jié)點若僅左子樹有解,返回左子樹若僅右子樹有解,返回右子樹若都無解,返回。對于而言,更為簡單公共祖先一定是大于等于其中一個結點,小于等于另一個結點。 Problem Given the root and two nodes in a Binary Tree. Find the lowest common ancestor(LCA) of the ...

    dinfer 評論0 收藏0
  • [Leetcode] Largest Number 最大整數(shù)

    摘要:拼接比較法復雜度時間空間思路要拼成最大數(shù),我們只要讓較大的數(shù)排在前面,較小的數(shù)排在后面就行。注意如果排序后第一個數(shù)是,則直接返回,因為后面的數(shù)只有可能是了。 Largest Number Given a list of non negative integers, arrange them such that they form the largest number. For exa...

    wuyumin 評論0 收藏0

發(fā)表評論

0條評論

xietao3

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<