1、题目
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入: [10,2]
输出: 210
示例 2:
输入: [3,30,34,5,9]
输出: 9534330
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
2、题目分析
1、将输入的整数数组变成字符串数组;
2、完成字符串数字之间的比较,(a+b) > (b+a);
3、输出的结果可能非常大,输出为字符串形式;
这里用到了algorithm 中的sort
3、代码
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
bool compare(string &a, string &b){
return (a+b) > (b+a);
}
int main()
{
int n;
cin >> n;
vector<string> str(n,"");
for (int i =0;i<n;i++){
cin >> str[i];
}
sort(str.begin(),str.end(),compare);
string res;
for (auto c: str){
res += c;
}
cout<<res<<endl;
return 0;
}