vs2010网站开发实例,广东省建设集团有限公司,拓者设计吧注册码免费,海尔网站建设推广文章目录 1. 题目链接2. 题目大意3. 示例4. 解题思路5. 参考代码 1. 题目链接
LCR 164. 破解闯关密码 - 力扣#xff08;LeetCode#xff09; 2. 题目大意
描述#xff1a;给定一个非负整数数组 nums。
要求#xff1a;将数组中的数字拼接起来排成一个数#xff0c;打印… 文章目录 1. 题目链接2. 题目大意3. 示例4. 解题思路5. 参考代码 1. 题目链接
LCR 164. 破解闯关密码 - 力扣LeetCode 2. 题目大意
描述给定一个非负整数数组 nums。
要求将数组中的数字拼接起来排成一个数打印能拼接出的所有数字中的最小的一个。
说明
0nums.length≤100。输出结果可能非常大所以你需要返回一个字符串而不是整数。拼接起来的数字可能会有前导 0最后结果不需要去掉前导 0。 3. 示例
输入: [10,2]
输出: 102 输入[3,30,34,5,9]
输出3033459 4. 解题思路
本质上是给数组进行排序。假设 x、y 是数组 nums 中的两个元素。则排序的判断规则如下所示
如果拼接字符串 xyyx则 xx 大于 yy 应该排在 x 前面从而使拼接起来的数字尽可能的小。如果拼接字符串 xyyx则 x 小于 yx 应该排在 y 前面从而使拼接起来的数字尽可能的小。 5. 参考代码
class Solution {public String crackPassword(int[] password) {// 将整数数组转换为字符串数组String[] numsStr new String[password.length];for (int i 0; i password.length; i) {numsStr[i] String.valueOf(password[i]);}// 使用自定义比较器对字符串数组进行排序Arrays.sort(numsStr, new ComparatorString() {Overridepublic int compare(String a, String b) {// 直接比较连接结果的大小return (a b).compareTo(b a);}});// 使用 StringBuilder 拼接字符串StringBuilder result new StringBuilder();for (String str : numsStr) {result.append(str);}return result.toString();}}