LeetCode:Largest Number
来源:互联网 发布:作曲软件哪个好 编辑:程序博客网 时间:2024/05/16 19:14
179. Largest Number
题目描述:
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 is9534330
.
思路:
初步想法是先对数组进行排序,使得排序后相连接的数字最大。我采用最简单的冒泡排序,这里的关键是如何比较两个数,那个应该放在前面(即那个数大)。
比较两数大小步骤:
1:分别计算整数m,n的前后组合的字符串mn和nm。如m= 123, n= 456,则mn= 123456, nm= 456123。
2:比较组合后的mn和nm,那个数大。由于mn和nm有可能太大,超出int的范围,故,我采用按位比较字符串字符大小的方法,从前往后,依次比较把每一位大小。
连接数字成为字符串:
1:两数字转换为字符串,我使用C++中的streanstream。stringstream ss;ss << nums[i];。
2:连接字符串,str += ss.str();。
附上代码:
class Solution {public: bool Comp(int m, int n){stringstream ssm;ssm << m;stringstream ssn;ssn << n;string smn = ssm.str() + ssn.str();string snm = ssn.str() + ssm.str();stringstream ssmn(smn);stringstream ssnm(snm);int newmn, newnm;ssmn >> newmn;ssnm >> newnm;int cnt = smn.length();for(int i = 0; i < cnt; i ++){if(smn[i] > snm[i])return true;else if(smn[i] < snm[i])return false;}return true;}void BubbleSort(vector<int>& nums){int n = nums.size();for(int i = n - 1; i > 0; i --){for(int j = 0; j < i; j ++){if(!Comp(nums[j], nums[j + 1])){int tmp = nums[j];nums[j] = nums[j + 1];nums[j + 1] = tmp;}}}}string largestNumber(vector<int>& nums) {BubbleSort(nums);int n = nums.size();string str = "";for(int i = 0; i < n; i ++){stringstream ss;ss << nums[i];if(str != "" || ss.str() != "0" || i == n - 1)str += ss.str();}return str;}};
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
- 获取昨天的时间
- 第1章第2节练习题13 单链表之选择排序
- 【机器学习算法】之线性回归分析
- 美团Android DEX自动拆包及动态加载简介
- jackson json开发过程遇到的一些问题小节
- LeetCode:Largest Number
- 资深HR 告诉你到底怎么写一份好的简历
- SQL 之 group by
- nested exception is java.lang.NoSuchFieldError: TRACE
- 读取assets目录下的资源文件写入到本地
- 内核文档driver-model/platform.txt翻译
- 导出CSV格式的文件
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- ios客户端学习-ios及android改变图片颜色的方法