把数组排成最小的数
来源:互联网 发布:淘宝上的佳德凤梨酥 编辑:程序博客网 时间:2024/06/03 06:53
刚开始做这道题时没有理解算法的含义,搞了好久才发现是理解偏了,主要原因是我没有理解透sort函数里比较函数的作用,它相当于是按程序员的需求重新定义比较规则,比如这道题就是要重定义比较整数a和b的比较规则,即:若ab >ba, 则 a > b; 否则 a < b。算法实现过程我就不赘述了,直接上代码(我在牛客网实现的):
class Solution {public:/*思路: 将数组中的数按定义的排序方式进行排序,即:若ab >ba, 则 a > b; 否则 a < b;将排完序的数字串成一个字符串输出即所求。*/ string PrintMinNumber(vector<int> numbers) { string res = ""; if(numbers.empty()) return res; sort(numbers.begin(), numbers.end(), cmp); //排序 int len = numbers.size(); for(int i = 0; i < len; i++) //连接 res += to_string(numbers[i]); return res; } static bool cmp(int a, int b) //重定义比较器 { string str1 = to_string(a) + to_string(b); //to_string可以将整数转换为字符串,+为string类库函数,将字符串连接起来 string str2 = to_string(b) + to_string(a); return str1 < str2; //通过比较ab和ba的大小,对a和b进行升序排列 }};要注意的是,比较器函数要定义为static类型,因为其作为类的成员函数时,默认拥有一个this指针,这样和sort函数所需要使用的排序函数类型不一样,会报错。
0 0
- 把数组排成最小的数--总结
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数--总结
- 把数组排成最小的数--总结
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- select/poll/epoll对比分析
- 简单兼容ie的css写法
- with tableName的用法
- matplotlib text 文字处理
- vlc播放网络流延时参数设置
- 把数组排成最小的数
- 前端人员------面试题
- h5 canvas 绘图
- mysql 把字段进行逗号分隔成多条数据
- NMON 监控软件的安装和分析
- 文章标题
- An internal error occurred during: “Updating Maven Project”. java.lang.NullPointerException
- 解决 Could not create the view: An unexpected exception was thrown
- Android 7.1CTS 部分问题总结