- 1、题目描述:
图片说明
- 2、题目链接:
题目所在位置
-3、 设计思想:
图片说明
详细操作流程看下图
图片说明
-4、视频讲解链接B站视频讲解

-5、代码:
c++版本:

class Solution {
public:
    /**
     * 最大数
     * @param nums int整型vector 
     * @return string字符串
     */
    //定义一个排序规则 
    static bool cmp(string a,string b){
        return a + b > b + a;
    }
    string solve(vector<int>& nums) {
        vector<string> ve;
        //将整型的数字转化为字符串
        for(int i  = 0;i < nums.size();i ++){
            ve.push_back(to_string(nums[i]));
        }
        //排序
        sort(ve.begin(),ve.end(),cmp);
        //这个地方需要注意如果第一个字符串已经是0了,那么直接输出0
        if(ve[0] == "0") return "0";

        string res =""; //结果字符串
        for(int i = 0;i < ve.size();i ++){
            res += ve[i];//将排序好后的字符串一次相加就是最终的结果
    }
    return res;
    }
};

Java版本:

import java.util.*;


public class Solution {
    /**
     * 最大数
     * @param nums int整型一维数组 
     * @return string字符串
     */
    public String solve (int[] nums) {
        // write code here
        ArrayList<String> list = new ArrayList<>();
        //将整型的数字转化为字符串
        for(int i = 0;i < nums.length;i ++){
            list.add(String.valueOf(nums[i]));
        }
        //排序
        Collections.sort(list,new Comparator<String>(){
            @Override
            public int compare(String a,String b){
                return (b + a).compareTo(a + b);
            }
        });
        //这个地方需要注意如果第一个字符串已经是0了,那么直接输出0
        if(list.get(0).equals("0")) return "0";

        StringBuilder res = new StringBuilder(); //结果字符串
        for(int i = 0;i < list.size();i ++){//将排序好后的字符串一次相加就是最终的结果
            res.append(list.get(i));
        }
        return res.toString();


    }
}

Python版本:

#
# 最大数
# @param nums int整型一维数组 
# @return string字符串
#
#比较规则
class cmp(str):
    def __lt__(x, y):
        return x+y > y+x
class Solution:      
    def solve(self , nums ):
        # write code here
        #将整型的数字转化为字符串
        strs = [str(i) for i in nums]
        #排序
        strs = sorted(strs,key = cmp)
        #这个地方需要注意如果第一个字符串已经是0了,那么直接输出0
        if strs[0] == "0": return "0"
        return "".join(strs)