zoukankan      html  css  js  c++  java
  • 【刷题-LeetCode】179 Largest Number

    1. Largest Number

    Given a list of non negative integers, arrange them such that they form the largest number.

    Example 1:

    Input: [10,2]
    Output: "210"
    

    Example 2:

    Input: [3,30,34,5,9]
    Output: "9534330"
    

    Note: The result may be very large, so you need to return a string instead of an integer.

    使用排序,自定义比较函数:对于数字a, b

    • 如果ab > ba,则a > b
    • 如果ab < ba,则a < b

    然后调用sort函数

    class Solution {
    public:
        string largestNumber(vector<int>& nums) {
            sort(nums.begin(), nums.end(), cmp);
            string ans;
            for(int x : nums)ans += to_string(x);
            while(ans.size() > 1 && ans[0] == '0')ans.erase(0, 1);
            return ans;
        }
        static bool cmp(int n1, int n2){
            int len1 = 0, len2 = 0;
            int tmp1 = n1, tmp2 = n2;
            do{
                len1++;
                n1 /= 10;
            }while(n1 != 0);
            do{
                len2++;
                n2 /= 10;
            }while(n2 != 0);
            return tmp1 * pow(10, len2) + tmp2 > tmp1 + tmp2 * pow(10, len1);
        }
    };
    
  • 相关阅读:
    odoo10 入门
    git 命令详细介绍
    odoo中Python实现小写金额转换为大写金额
    {DARK CTF } OSINT/Eye
    2020 12 18
    2020 12 17
    2020 12 16
    2020 12 15
    2020 11 14
    2020 11 13
  • 原文地址:https://www.cnblogs.com/vinnson/p/13289293.html
Copyright © 2011-2022 走看看