设有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 < n;i ++){
cin >> a[i];
}
for(int i = 0;i <

本文探讨了一道关于找出n个正整数连接成的最大多位整数的问题。利用贪心策略,首先将整数转换为字符串,接着通过比较a+b与b+a的大小对这些字符串进行排序,从而得出解决方案。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



