zoukankan      html  css  js  c++  java
  • LeetCode 179. 最大数(Largest Number)

    题目描述

    给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。

    示例 1:

    输入: [10,2]
    输出: 210

    示例 2:

    输入: [3,30,34,5,9]
    输出: 9534330

    说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。

    解题思路

    组成最大数应使得高位数字尽量大,所以首先按照高位数字从大到小对数组排序,然后一次从高位到低位组成最大数。注意若数组全为0,则直接返回一个0.

    代码

     1 class Solution {
     2 public:
     3     string largestNumber(vector<int>& nums) {
     4         vector<string> numStr;
     5         for(int num: nums)
     6             numStr.push_back(to_string(num));
     7         sort(numStr.begin(), numStr.end(), cmp);
     8         if(numStr.size() && numStr[0] == "0") return "0";
     9         string s = "";
    10         for(string num: numStr)
    11             s += num;
    12         return s;
    13     }
    14     static bool cmp(string i, string j){
    15         return i + j > j + i;
    16     }
    17 };
  • 相关阅读:
    Codeforces Round #581 (Div. 2)
    Codeforces Round #605 (Div. 3)
    cin,cin.get(),cin.getline(),getline()
    容斥原理原理
    词法分析器
    Web学习开始。
    Convex hull凸包
    对max_flow做一个总结
    Vue中动画封装
    Vue中的动画特效
  • 原文地址:https://www.cnblogs.com/wmx24/p/9523792.html
Copyright © 2011-2022 走看看