本文主要是介绍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.
问题分析:
这是一个排序问题,具体的两个数字之间的顺序要根据它们能组成的数的大小来决定。
过程详见代码:
bool cmp(int a, int b){string sa = to_string(a) + to_string(b);string sb = to_string(b) + to_string(a);if (sa.compare(sb) > 0) return true;else return false;}class Solution {
public:string largestNumber(vector<int>& nums) {string res = "";sort(nums.begin(),nums.end(),cmp);if (nums[0] == 0) return "0";for (int i = 0; i < nums.size(); i++){res += to_string(nums[i]);}return res;}
};
这篇关于Largest Number问题及解法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!