Leetcode: Largest Number
来源:互联网 发布:滁州学院网络教学平台 编辑:程序博客网 时间:2024/06/06 09:41
Given a list of non negative integers, arrange them such that they form the largest number.
leetcode上的一道给定一个整形数组然后求其怎样进行组合才能得到一个最大的值,由于可能太大,会导致溢出,要求返回string类型而非整形。下面是我的刚开始的想法:
拿例题来说,给定一个数组[3,30,34,5,9],求其能组成的最大数值。很自然的想法就是将最大的值排在最靠前的位置,然后依次将第二大、第三大在后面排序即可。问题是由于各个数是多少位不能确定。后来又想先将数组中的每个整形转换为字符串之后进行左对齐,然后按照最左边的首先进行排序,在左边排完序之后根据从左往右数的第二位进行降序排序。但是这样也会出现一个小问题,就是比如一个是3,另一个是30和34.左对齐之后是如表格所示:在左边位数相同的情况下,第二位缺省的要比第二位有数字的要排在靠前的位置,这种做法比较麻烦。
3 3430
后参考http://www.cnblogs.com/easonliu/p/4221810.html 这篇博客中的做法,觉得比自己的做法要好,代码copy过来,留以后方便查看。
<pre name="code" class="cpp"><span style="font-family:Times New Roman;font-size:14px;">bool cmp(const string s1, const string s2) { return (s1 + s2) > (s2 + s1);}class Solution {public: string largestNumber(vector<int> &num) { vector<string> s_num(num.size()); stringstream stream; for (int i = 0; i < num.size(); ++i){ stream << num[i];//将整形输入至流 stream >> s_num[i];//将流输出至string的vector中。 stream.clear(); } sort(s_num.begin(), s_num.end(), cmp); string res; bool flag = false; for ( int i = 0; i < s_num.size(); ++i){ <span style="white-space:pre"></span>if (s_num[i] != "0"){ <span style="white-space:pre"></span>res += s_num[i]; <span style="white-space:pre"></span>flag = true; }else if (flag)res += s_num[i];if (!flag) res.push_back('0');return res;}};</span>
0 0
- Largest Number @leetCode
- LeetCode : Largest Number
- Leetcode Largest Number
- [LeetCode] Largest Number
- [leetcode]179 Largest Number
- [LeetCode] Largest Number
- Leetcode Largest Number
- [LeetCode]Largest Number
- leetcode 179: Largest Number
- 【LeetCode】Largest Number
- 【Leetcode】Largest Number
- [LeetCode]179.Largest Number
- LeetCode: Largest Number
- Largest Number|leetcode解决方案
- leetcode 之Largest Number
- [leetcode] Largest Number
- LeetCode(179) Largest Number
- [leetcode]Largest Number
- 总结:GIS数据的查找,插入,删除,更新
- online_judge_1166
- uva1267(无根树 +dfs)
- 算法导论笔记1——插入排序
- 图的遍历(二)—广度优先遍历
- Leetcode: Largest Number
- error C3861: “strcat_s”: 即使使用参数相关的查找,也未找到标识符
- 20150129Review
- Moto回归中国市场 工业设计是核心优势
- hive的简单介绍和基本命令整理
- jQuery Easing 动画效果扩展
- 关于Java环境变量,提示找不到或无法加载主类
- 二叉树的C++实现(简单版)
- 成佩涛-一种加快在苹果app store中上架的方法