Given a list of non negative integers, arrange them such that they form the largest number.

Example 1:

Input: [10,2]
Output: "210"

Example 2:

Input: [3,30,34,5,9]
Output: "9534330"

Note: The result may be very large, so you need to return a string instead of an integer.

Credits:
Special thanks to @ts for adding this problem and creating all test cases.

这道题给了我们一个数组,让将其拼接成最大的数,那么根据题目中给的例子来看,主要就是要给数组进行排序,但是排序方法不是普通的升序或者降序,因为9要排在最前面,而9既不是数组中最大的也不是最小的,所以要自定义排序方法。如果不参考网友的解法,博主估计是无法想出来的。这种解法对于两个数字a和b来说,如果将其都转为字符串,如果 ab > ba,则a排在前面,比如9和34,由于 934>349,所以9排在前面,再比如说 30 和3,由于 303<330,所以3排在 30 的前面。按照这种规则对原数组进行排序后,将每个数字转化为字符串再连接起来就是最终结果。代码如下:

class Solution {
public:
string largestNumber(vector<int>& nums) {
string res;
sort(nums.begin(), nums.end(), [](int a, int b) {
return to_string(a) + to_string(b) > to_string(b) + to_string(a);
});
for (int i = ; i < nums.size(); ++i) {
res += to_string(nums[i]);
}
return res[] == '' ? "" : res;
}
};

Github 同步地址:

https://github.com/grandyang/leetcode/issues/179

参考资料:

https://leetcode.com/problems/largest-number/

https://leetcode.com/problems/largest-number/discuss/53158/My-Java-Solution-to-share

https://leetcode.com/problems/largest-number/discuss/53157/A-simple-C%2B%2B-solution

LeetCode All in One 题目讲解汇总(持续更新中...)

最新文章

  1. Android点击列表后弹出输入框,所点击项自动滚动到输入框上方
  2. android系统自带的日期、时间对话框的用法
  3. SQL Server2000导出数据时包含主键、字段默认值、描述等信息
  4. August 21st 2016 Week 35th Sunday
  5. 【Algorithms】归并排序(merge sort)
  6. SQL数据类型解释
  7. sqlSQL2008如何创建定时作业(代理服务)(转)
  8. day3 python 集合 文件
  9. Java 7之集合类型 - 二叉排序树、平衡树、红黑树---转
  10. bzoj1821: [JSOI2010]Group 部落划分 Group
  11. SQL 使用Cursor(游标)遍历结果集
  12. Echarts展示百分比的问题
  13. Andorid源码系列:View的onTouchEvent()与performClick(),performLongClick()调用时机解析
  14. webpack编译流程漫谈
  15. xml作用以及语法
  16. 洗礼灵魂,修炼python(67)--爬虫篇—cookielib之爬取需要账户登录验证的网站
  17. MySQL—函数大全
  18. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —9.块存储服务(cinder)部署配置
  19. extjs model store学习笔记
  20. C#学习笔记(七):结构体、数组、冒泡排序和调试

热门文章

  1. axios 源码分析(上) 使用方法
  2. python验证码处理(1)
  3. mac下chm文件打开乱码解决
  4. ios问题笔记
  5. ios开发的技巧
  6. Xcode修改项目名称
  7. python通过连接池连接redis,操作redis队列
  8. 4.dubbo 的 spi 思想是什么?
  9. pycharm 配置使用 flake8 进行语法检测
  10. lf 前后端分离 (4) 价格策略