剑指offer:把数组排成最小的数
来源:互联网 发布:svd矩阵标准化 编辑:程序博客网 时间:2024/06/18 17:13
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
#include<string>using namespace std;class Solution {public: string PrintMinNumber(vector<int> numbers) { int size = numbers.size(); vector<string> strnumbers; //全部转化为字符串 for(auto n:numbers) strnumbers.push_back(to_string(n)); //对所有字符串进行排序,从小到大 for(int i=1; i<size; ++i) { int j=i; string temp = strnumbers[i]; while(j>=1 && compare(temp,strnumbers[j-1])) { strnumbers[j] = strnumbers[j-1]; --j; } strnumbers[j] = temp; } //将所有字符串连在一起输出 string output = ""; for(auto str:strnumbers) output += str; return output; } //确定两个数字的先后顺序,关键点 bool compare(string a, string b) { string ab = a + b; string ba = b + a; if(ab > ba) return 0;//b放前面 else return 1;//a放前面 }};
0 0
- 剑指offer-33:把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 【剑指offer】把数组排成最小的数
- 【剑指offer】Q33:把数组排成最小的数
- 九度《剑指offer》把数组排成最小的数
- 剑指Offer之把数组排成最小的数
- 剑指offer系列源码-把数组排成最小的数
- 剑指offer 33 把数组排成最小的数
- 剑指offer--把数组排成最小的数
- 剑指offer之把数组排成最小的数
- 《剑指offer》把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 【剑指Offer】把数组排成最小的数
- 剑指offer—把数组排成最小的数
- 《剑指offer》——把数组排成最小的数
- 【剑指offer】之把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 剑指offer:把数组排成最小的数
- jq获取一串字符串中的数字
- java.lang.IllegalStateException: Required view 'nav' with ID 2131558567 for field
- script 滚动后固定
- QT Widget::setLayout: Attempting to set QLayout “” on Widget “”, which already has a layout
- faster rcnn源码解读2
- 剑指offer:把数组排成最小的数
- Swift 3.0 学习笔记-2-字符串和Unicode
- 当我们讨论人工智能的时候,我们在想些什么?
- 程序设计2
- Spring基础
- 利用nodeJs anywhere搭建本地服务器环境
- Android Studio手动下载配置Gradle的方法
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
- iOS常用三方库 AFNetworking及封装