zoukankan      html  css  js  c++  java
  • [LeetCode]Largest Number

    题目描述:

    Largest Number

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

    For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330.

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

    解题思路:

    1. 题目要求用所给的整数排出最大的数;

    2. 基本的思想是使用排序的办法,按照一定的方法把所给出的整数排序,排序后的结果按顺序连起来就是最大的整数。

    3. 使用的排序是快排函数sort,重载sort使用自己设计的排序方案:对所给的2个整数进行1+2和2+1的字符串连接,找出其中字符串大的连接方式。

    解题代码:

    class Solution {
    public:
        bool static get_large(int num1, int num2)
        {
            string s1 = to_string(num1) + to_string(num2);
            string s2 = to_string(num2) + to_string(num1);
            
            return (s1.compare(s2) > 0);
        }
        string largestNumber(vector<int> &num) {
            string result = "";
            sort(num.begin(), num.end(), get_large);
            for(int i = 0; i < num.size(); i++)
            {
                result += to_string(num[i]);
            }
            
            if(result[0] == '0')return "0";
            return result;
        }
    
    };
  • 相关阅读:
    Visual Source Safe的使用方法
    二十道经典C#面试题
    C#中转义符
    在自己迷惑的时候,提醒自己
    C#中多态
    C#重载和重写
    DataTable定义
    C#怎么调用方法
    mysql数据类型——字符串char(m)和varchar(m)
    mysql数据类型——时间类型
  • 原文地址:https://www.cnblogs.com/liuyikang/p/4351134.html
Copyright © 2011-2022 走看看