个人企业网站,网站怎么做咨询,网站设计深圳,网站建设 语言给定一组非负整数#xff0c;重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入: [10,2] 输出: 210 示例 2:
输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果可能非常大#xff0c;所以你需要返回一个字符串而不是整数。
思路#xff1a;贪心#xff0c;对于…给定一组非负整数重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入: [10,2] 输出: 210 示例 2:
输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果可能非常大所以你需要返回一个字符串而不是整数。
思路贪心对于两个字符串如果abba则交换位置。整体按这个标准排序即可。
有时候现场一时证明不了想的贪心策略是否正确这时可以先尝试一下到底对不对万一对了就赚了。
证明 class Solution {private class LargerNumberComparator implements ComparatorString {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;}
}