首页 > 代码库 > [LeetCode]179 Largest Number
[LeetCode]179 Largest Number
https://oj.leetcode.com/problems/largest-number/
public class Solution { public String largestNumber(int[] num) { if (num == null || num.length == 0) return ""; // Convert to string. List<String> strs = new ArrayList<>(); for (int i : num) strs.add(String.valueOf(i)); // Sort. // KEY STEP. Collections.sort(strs, comparator); // Case all numbers are 0. if (strs.get(0).equals("0")) return "0"; // Build result. StringBuilder sb = new StringBuilder(); for (String s : strs) sb.append(s); return sb.toString(); } // Comparator for string. // // a小于b 返回 -1 // 默认sort 是 从小到大 private Comparator<String> comparator = new Comparator<String>() { public int compare(String a, String b) { int i = 0; while (i < a.length() && i < b.length()) { char ca = a.charAt(i); char cb = b.charAt(i); if (ca != cb) return Character.compare(cb, ca); i++; } // 如果两字符相等 if (i == a.length() && i == b.length()) return 0; // 如果一个字符是另外一个字符的substring,需要重复比对 // 体会 // compare (12, 128) // compare (131, 13) else if (i != a.length()) // a has more return compare(a.substring(i, a.length()), b); else // i == a.length && i != b.length return compare(a, b.substring(i, b.length())); } }; }
[LeetCode]179 Largest Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。