[剑指offer]把数组排成最小的数
2016-05-04 08:59
369 查看
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。分析:将int型的数组转化为string型的数组,再将string型的数组排序,排序规则依据比较两个string变量相加后的大小(注意这个cmp函数必须为静态成员函数)。
代码:
class Solution { public: static bool cmp(string s1,string s2){ string a=s1+s2; string b=s2+s1; return a<b; } string PrintMinNumber(vector<int> numbers) { string ret=""; int n=numbers.size(); if(n<=0) return ret; vector<string> nums; for(int i=0;i<n;i++){ nums.push_back(to_string(numbers[i])); } sort(nums.begin(),nums.end(),cmp); for(string num:nums){ ret+=num; } return ret; } };
相关文章推荐
- Xcode7.3中SKAudioNode"诡异"初始化的解决
- Xcode7.3中SKAudioNode"诡异"初始化的解决
- Xcode7.3中SKAudioNode"诡异"初始化的解决
- CSS技巧(二)解读浮动闭合:clearfix
- CSS技巧(一)解决加padding后div被撑开
- Effective STL 条款31
- 《Effective java》—–读书笔记
- 【BootStrap】陌生=》熟悉=》惊喜
- 《Effective java》-----读书笔记
- ajax
- javascript截图 jQuery插件imgAreaSelect使用详解
- Web前端学习笔记:Bootstrap框架 - 夏天的森林 - 博客园
- 如何用nodejs创建一个webservice
- Extjs学习笔记
- HTML JavaScript的DOM操作
- HTML 数据类型
- Extjs 下拉框显示远程数据
- HTML格式布局
- css样式表
- jstl的国际化,自定义视图和重定向