1 题目描述

  输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

2 思路和方法

  因为要拼接int数字,所以这里面涉及到int越界问题,所以题目返回string;主要是制定比较算法来对数组进行排序, return a>b;//(从大到小)return a<b;(从小到大)。例如“3”和“123”,“3123”>“1233”,所以返回false。

  如果两个数字m,n拼接成mn和nm,如果mn<nm,那么m应该排在n的前面,我们定义此时m小于n,如果mn=nm,我们定义m等于n。由于mn和nm的位数一定是相同的,因此比较它们的大小只需按照字符串大小的比较规则即可。

3 C++核心代码

 class Solution {
public:
static bool cmp(int a,int b)
{
string A=to_string(a)+to_string(b);
string B=to_string(b)+to_string(a);
return A<B;
}
string PrintMinNumber(vector<int> numbers) {
int len = numbers.size();
if(len==)
return "";
sort(numbers.begin(),numbers.end(),cmp);
string result="";
for(int i=;i<len;i++)
{
result+=to_string(numbers[i]);
}
return result;
}
};

参考资料

https://blog.csdn.net/sz793919425/article/details/98208092

最新文章

  1. CSS3 @font-face的使用
  2. Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解
  3. Android 使用Parcelable序列化对象
  4. 三角函数计算,Cordic 算法入门
  5. HDU1028Ignatius and the Princess III(母函数)
  6. HTTP - 基本认证
  7. JS 实现地区,省份,城市,县区4级联动
  8. win7已安装Mysql 开机自启动
  9. C# .NET中的 反射的应用
  10. PyQt通过resize改变窗体大小时ListWidget显示异常
  11. [JDK8]性能优化之使用LongAdder替换AtomicLong
  12. Unity琐碎(3) UGUI 图文混排解决方案和优化
  13. 前端JS Excel解析导入
  14. asp.net动态解析用户控件(UserControl)
  15. CompareTo 基于的排序算法
  16. chrome插件 - Manifest文件中的 background
  17. 媒体类型 &amp; 媒体查询
  18. 分布式的CAP理论
  19. python 之 决策树分类算法
  20. [NOI2007]货币兑换 cdq分治,斜率优化

热门文章

  1. 下载安装 binary editor
  2. ubuntu dnsmasq问题
  3. XMLHttpRequest Level2 新功能
  4. 性能分析 | Java服务器内存过高&amp;CPU过高问题排查
  5. hey is a tiny program that sends some load to a web application.
  6. Linux通过AIO进行异步读文件
  7. C++ STL copy copy_backward
  8. Linux-文件系统的简单操作
  9. 15 Flutter BottomNavigationBar自定义底部导航条 以及实现页面切换 以及模块化
  10. GPIO相关寄存器描述和怎么配置