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