设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
这道题具有贪心选择性质和最优子结构性质,可以用贪心算法来解决。首先可以将n个正整数转化为字符串,然后根据a+b和b+a的大小进行排序。
#include <iostream>
#include <stdlib.h>
using namespace std;
int n;
string a[100];
string result = "";
int compare(string s1,string s2){
string ts1 = s1 + s2;
string ts2 = s2 + s1;
int num1 = atoi(ts1.c_str());
int num2 = atoi(ts2.c_str());
if(num1 > num2){
return 1;
}else{
return -1;
}
}
int main()
{
cin >> n;
for(int i = 0;i &