zoukankan      html  css  js  c++  java
  • 179. Largest Number(INT, String)

    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.

    思路:

    要对数字进行排列,首位大的在前。

    比较每个数字的首位,这在不知道位数的情况下,很难实现,所以将INT转换成string再比较。

    由于string的连接操作非常方便,所以比较首位的大小,可以转化成比较连接后string的大小。

    class Solution {
    public:
        static bool cmp(const string &s1, const string &s2){ //注意static,const,引用的使用
            return (s1+s2) > (s2+s1); // >表示按降序排列
        }
        string largestNumber(vector<int>& nums) {
            int size = nums.size();
            stringstream ss;
            vector<string> s_nums(size);
            string ret = "";
    
            for(int i = 0 ; i < size; i++){
                ss << nums[i];
                ss >> s_nums[i];
                ss.clear();
            }
            sort(s_nums.begin(), s_nums.end(),cmp);
            
            if(s_nums[0]=="0") return s_nums[0];
            for(int i = 0; i < size; i++){
                ret += s_nums[i];
            }
            return ret;
        }
    };
  • 相关阅读:
    in exists
    oracle 12514文件解决
    oracle11g自动内存管理
    lvs为何不能完全替代DNS轮询
    druid安装
    macbook 安装win7
    GBT MBR
    python的文件操作
    zabbix简易安装指南
    zatree的安装
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/5033466.html
Copyright © 2011-2022 走看看