[LeetCode]179.Largest Number
来源:互联网 发布:单片机型号大全 编辑:程序博客网 时间:2024/06/11 19:08
【题目】
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.
【分析】
数字转换为字符串,按字典序从大到小排序,并拼接在一起就是最大的数
【代码】
/********************************** 日期:2015-01-18* 作者:SJF0115* 题目: 179.Largest Number* 网址:https://oj.leetcode.com/problems/largest-number/* 结果:AC* 来源:LeetCode* 时间复杂度:O(n)* 空间复杂度:O(n)* 博客:**********************************/#include <iostream>#include <stdio.h>#include <cstring>#include <algorithm>#include <vector>using namespace std;class Solution {public: static bool cmp(const string &a,const string &b){ string ab = a + b; string ba = b + a; return ab > ba; } string largestNumber(vector<int> &num) { int count = num.size(); vector<string> vec; if(count == 0){ return NULL; }//if // 整数转换为字符串 int zeroCount = 0; for(int i = 0;i < count;++i){ // 统计0的个数 if(num[i] == 0){ zeroCount ++; }//if char str[20]; sprintf(str,"%d",num[i]); vec.push_back(str); }//for // 处理一个特殊情况 全是0的情况 if(zeroCount == count){ return "0"; }//if // 剪枝 只有一条数据 if(count == 1){ return vec[0]; }//if // 从大到小排序 sort(vec.begin(),vec.end(),cmp); // 拼接一个最大的数 string result; for(int i = 0;i < count;++i){ result += vec[i]; }//for return result; }};int main(){ Solution solution; vector<int> num; num.push_back(3); num.push_back(30); num.push_back(34); num.push_back(5); num.push_back(9); // 重新排列 string result = solution.largestNumber(num); // 输出 cout<<result<<endl; return 0;}
特别注意一个特殊情况:
全是0的情况,只返回一个0即可。
0 0
- [LeetCode]179.Largest Number
- LeetCode 179. Largest Number
- [leetcode] 179.Largest Number
- [LeetCode]179. Largest Number
- 179. Largest Number LeetCode
- leetcode 179. Largest Number
- LeetCode 179. Largest Number
- [leetcode] 179. Largest Number
- leetcode.179. Largest Number
- LeetCode-179.Largest Number
- LeetCode - 179. Largest Number
- [LeetCode] 179. Largest Number
- LeetCode 179. Largest Number
- LeetCode 179. Largest Number
- [LeetCode]179. Largest Number
- LeetCode 179. Largest Number
- Leetcode 179. Largest Number
- [LeetCode]179. Largest Number
- 提供给开发者 10 款最好的 Python IDE
- 初学DB2
- python Logger 高级教程
- Android APK反编译就这么简单 详解(附图)
- Python 代码性能优化技巧
- [LeetCode]179.Largest Number
- ubuntu 安装 花屏
- 内存溢出 内存泄漏
- 嵌入式资源网站
- git中配置autocrlf来正确处理crlf
- 新的10大数据挖掘、机器学习算法
- Android四大基本组件介绍与生命周期
- Q2.7 Check if a list is a palindrome
- ubuntu 下面libxml2的安装与使用--注意 -lxml2 不放置在最后编译会报错!