把数组排成最小的数

1用全排列 再遍历去比较哪个小这个方法实在是效率太低!!!

 

2 用sort和字符串结合  


sort中的比较函数compare要声明为静态成员函数或全局函数,不能作为普通成员函数,否则会报错。

 因为:非静态成员函数是依赖于具体对象的,而std::sort这类函数是全局的,因此无法再sort中调用非静态成员函数。

静态成员函数或者全局函数是不依赖于具体对象的, 可以独立访问,无须创建任何对象实例就可以访问。

同时静态成员函数不可以调用类的非静态成员。

 

//牛客大神!!

这里参考代码 就是https://www.cnblogs.com/epep/p/10959627.html  有关sort的用法  不用管内部实现 只要告诉排序规则即可!!!


Sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!

class Solution {
public:
    string PrintMinNumber(vector<int> numbers) {
         string  answer="";
         sort(numbers.begin(),numbers.end(),cmp);
         for(int i=0;i<numbers.size();i++){
             answer+=to_string(numbers[i]);
         }
         return answer;  
    }


 static bool cmp(int a,int b){
         string A="";
         string B="";
         A+=to_string(a);
         A+=to_string(b);
         B+=to_string(b);
         B+=to_string(a);
          
         return A<B;
     }



};

 

posted @ 2019-08-23 17:43  高颖1995  阅读(178)  评论(0编辑  收藏  举报