博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(算法)构造最大数
阅读量:5157 次
发布时间:2019-06-13

本文共 919 字,大约阅读时间需要 3 分钟。

题目:

给定一个只包含正整数的数组,给出一个方法,将数组中的数拼接起来,使得拼接后的数最大。例如,[1, 32, 212]拼接之后,所得到的最大数为322121。

思路:

比较方法:两个数先后顺序的确定,如a,b,如果ab>ba(转换为字符串,通过字典序排序),则a在b的前面;

通过上面的比较方法,就可以对数组中的整数进行从大到小的排序,最终输出的数组组成的就是最大数。

代码:

#include 
#include
#include
#include
using namespace std;struct cmp{ bool operator()(const string &a,const string &b){ string s1=a+b; string s2=b+a; return s1>s2; }};bool comp(const string &a,const string &b){ string s1=a+b; string s2=b+a; return s1>s2;}void getMaxNum(const vector
&A,int n){ vector
str(n); for(int i=0;i
>str[i]; } sort(str.begin(),str.end(),cmp()); //sort(str.begin(),str.end(),comp); for(int i=0;i
>n){ vector
A(n); for(int i=0;i
>A[i]; getMaxNum(A,n); } return 0;}

 

转载于:https://www.cnblogs.com/AndyJee/p/4848646.html

你可能感兴趣的文章
LeetCode_Recover Binary Search Tree
查看>>
Java中的异常和处理详解
查看>>
redhat更改yum源及安装PHP环境
查看>>
分布式监控系统Zabbix3.2对数据库的连接数预警
查看>>
JavaScript 运行机制:Event事件循环机制
查看>>
<a>标签的href和onclick属性
查看>>
面试题:你的Redis怎么持久化的?
查看>>
Python pyQt4/PyQt5 学习笔记4(事件和信号)
查看>>
經典算法002--快速排序
查看>>
C#发布程序添加其他程序文件
查看>>
manacher算法
查看>>
中间件介绍
查看>>
两个数组相同元素 做聚合
查看>>
JavaScript_1___简单页面倒计时跳转
查看>>
poj3687拓扑排序
查看>>
Android学习第九天----SQLite
查看>>
[转载]回顾MySpace架构的坎坷之路
查看>>
Linux基础学习
查看>>
python基础-----类和实例
查看>>
我的第一个Linux C 程序
查看>>