zoukankan      html  css  js  c++  java
  • leetcode 179. 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.

    一开始写了半天比较函数,后来反应过来,可以用字符串相加后比较来确定 a串还是b串对总大小的贡献大小

    写个比较函数就可以了,注意0的情况。

     1 class Solution {
     2 public:
     3     static bool cmp(const string& a, const string& b) {
     4         return (a+b) > (b+a);
     5     }
     6     string largestNumber(vector<int>& nums) {
     7         vector<string> v;
     8         int sum = 0;
     9         for (int i = 0; i < nums.size(); ++i) {
    10             v.push_back(to_string(nums[i]));
    11             sum += nums[i];
    12         }
    13         if (sum == 0) return "0";
    14         sort(v.begin(), v.end(), cmp);
    15         string k = "";
    16         for (int i = 0; i < nums.size(); ++i) {
    17             k += v[i];
    18         }
    19         return k;
    20     }
    21 };
  • 相关阅读:
    API
    Object constructor
    function()
    For语句的衍生对象
    编程语言发展史
    将Paul替换成Ringo
    Document.write和 getElementById(ID)
    姓名,电话号码,邮箱的正则检测
    JavaScript-BOM与DOM
    管理心得
  • 原文地址:https://www.cnblogs.com/pk28/p/7366352.html
Copyright © 2011-2022 走看看