Largest Number Leetcode

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.

这道题就是有些情况不太好想到,而且两个数字比的时候我写的有点复杂了,一开始觉得直接连起来比太耗时,写完了发现好像是一样的。。。= =我的反而要想。。。

注意一下第一个是0的情况。

public class Solution {
    public String largestNumber(int[] nums) {
        StringBuilder sb = new StringBuilder();
        if (nums == null) {
            return null;
        }
        String[] n = new String[nums.length];
        for (int i = 0; i < nums.length; i++) {
            n[i] = String.valueOf(nums[i]);
        }
        Arrays.sort(n, new Comparator<String>(){
            public int compare(String a, String b) {
                int i = 0;
                int j = 0;
                int com = 0;
                while (com < a.length() + b.length()) {
                    char first = i < a.length() ? a.charAt(i) : a.charAt(i % a.length());
                    char second = j < b.length() ? b.charAt(j) : b.charAt(j % b.length());
                    i++;
                    j++;
                    com++;
                    if (first == second) {
                        continue;
                    }
                    return second - first;
                }
                return 0;
            }
        });
        if (n[0].equals("0")) {
            return new String("0");
        }
        for (int i = 0; i < n.length; i++) {
            sb.append(n[i]);
        }
        return sb.toString();
    }
}

top solution和我的思路一样,不过是连起来比较的。。。简单很多。。。

时间: 2024-08-05 07:34:04

Largest Number Leetcode的相关文章

Largest Number——LeetCode

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 i

[Lintcode]184. Largest Number/[Leetcode]179. Largest Number

184. Largest Number/179. Largest Number 本题难度: Medium Topic: Greedy Description Largest Number 中文English 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 nu

leetCode 179. Largest Number 字符串排序 | Medium

179. Largest Number 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 st

LeetCode[Sort]: Largest Number

LeetCode[Sort]: Largest Number 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

leetcode上面的一个题目,求Largest Number

原题如下: 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 o

LeetCode:Largest Number

1.题目名称 Largest Number(求整型数组中各元素可拼合成的最大数字) 2.题目地址 https://leetcode.com/problems/largest-number/ 3.题目内容 英文:Given a list of non negative integers, arrange them such that they form the largest number. 中文:给出一组非负整数,求这些非负整数可以拼接出的最大数字 说明:例如,给出数组 [3, 30, 34,

8.15 [LeetCode] 179 Largest Number

[LeetCode 179] Largest Number | COMMENTS Question link 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 ver

[LeetCode][JavaScript]Largest Number

Largest Number 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

Leetcode: Largest Number

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 i