[LeetCode] Largest Number 最大组合数
发布日期:2021-09-08 15:09:02 浏览次数:6 分类:技术文章

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

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

For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330.

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

Credits:

Special thanks to  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
& 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 = 0; i < nums.size(); ++i) { res += to_string(nums[i]); } return res[0] == '0' ? "0" : res; }};

本文转自博客园Grandyang的博客,原文链接:,如需转载请自行联系原博主。

转载地址:https://blog.csdn.net/weixin_34326429/article/details/90127162 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Storm概念学习系列之并行度与如何提高storm的并行度
下一篇:jquery 获取标签名(tagName)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月16日 19时33分00秒