LeetCode 面试题45. 把数组排成最小的数
2021-01-28 19:14
标签:ret 网络 shu 个数 思路 快速 一个 value code 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 示例?2: 提示: 说明: 来源:力扣(LeetCode) 要想最终拼接值最小,需要尽可能把较小的数拼接在前面; 步骤: 算法复杂度: 步骤: 算法复杂度: LeetCode 面试题45. 把数组排成最小的数 标签:ret 网络 shu 个数 思路 快速 一个 value code 原文地址:https://www.cnblogs.com/izhoujie/p/12835788.html我的LeetCode:https://leetcode-cn.com/u/ituring/
我的LeetCode刷题源码[GitHub]:https://github.com/izhoujie/Algorithmcii
LeetCode 面试题45. 把数组排成最小的数
题目
输入: [10,2]
输出: "102"
输入: [3,30,34,5,9]
输出: "3033459"
链接:https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路
只要能保证两个数拼接后最小那么最终拼接的数就是最小的,所以问题可以转化为对nums的排序,排序的逻辑是两个数拼接后获得较小值时拼接在前的那个数“较小”;
比较的实现方式:
思路1-转为字符串拼接比较
思路2-自定义int的比较逻辑
算法源码示例
package leetcode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* @author ZhouJie
* @date 2020年5月5日 下午9:15:03
* @Description: 面试题45. 把数组排成最小的数
*
*/
public class LeetCode_Offer_45 {
}
class Solution_Offer_45 {
/**
* @author: ZhouJie
* @date: 2020年5月5日 下午9:19:34
* @param: @param nums
* @param: @return
* @return: String
* @Description: 1-转为String,然后排序,比较逻辑为:拼接后的字符串小的排在最前面(字符小对应的数值也小);
*
*/
public String minNumber_1(int[] nums) {
List
文章标题:LeetCode 面试题45. 把数组排成最小的数
文章链接:http://soscw.com/index.php/essay/48355.html