题解 | #最大数#

最大数

http://www.nowcoder.com/practice/fc897457408f4bbe9d3f87588f497729

  1. 必须转换成字符串,然后进行比较。a+ b> b+a . 利用字符串得位置互换得出结论。
  2. 注意处理”000“ 的输出。
class Solution {
public:
    /**
     * 最大数
     * @param nums int整型vector 
     * @return string字符串
     */




    string solve(vector<int>& nums) {
        // write code here

        if(!nums.size()) return "";

        int flag = 0;
        for(auto x: nums){
            if(x != 0){
                flag = 1;
            }
        }

        if(flag == 0){
            return "0";
        }

        vector<string> str;

        for(auto st:nums) str.push_back(to_string(st));




        sort(str.begin(),str.end(),[](string a, string b){
            return a+b > b + a;//字符串组合,然后通过字符串得自身数字比较特性给出结果

        });

        string res="";

        for(int i =0; i< str.size();i++){
            res+= str[i];
        }

        return res;


    }
};
算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论

相关推荐

牛客618272644号:佬携程工作怎么样,强度大吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务