zoukankan      html  css  js  c++  java
  • 剑指offer 把数组排成最小的数

    题目:

    输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

    代码:

     1 /*对vector容器内的数据进行排序,按照 将a和b转为string后
     2  若 a+b<b+a  a排在在前 的规则排序,
     3  如 2 21 因为 212 < 221 所以 排序后为 21 2 
     4   to_string() 可以将int 转化为string
     5 */ 
     6 class Solution {
     7 public:
     8     static bool cmp(int a, int b){
     9         string A = "";
    10         string B = "";
    11         A += to_string(a);
    12         A += to_string(b);
    13         B += to_string(b);
    14         B += to_string(a);
    15         return A < B;
    16     }
    17     string PrintMinNumber(vector<int> numbers) {
    18         string answer = "";
    19         sort(numbers.begin(),numbers.end(),cmp);
    20         for( int i = 0; i < numbers.size(); i ++)
    21             answer += to_string(numbers[i]);
    22         
    23         return answer;
    24     }
    25 };

    我的笔记:

      sort() 函数中包含三个参数,分别是,头指针,结束指针,和自定义函数comp,而sort()中的比较函数compare要声明为静态成员函数或全局函数,不能作为普通成员函数,否则会报错。 因为:非静态成员函数是依赖于具体对象的,而std::sort这类函数是全局的,因此无法在sort中调用非静态成员函数。静态成员函数或者全局函数是不依赖于具体对象的, 可以独立访问,无须创建任何对象实例就可以访问。同时静态成员函数不可以调用类的非静态成员。

      sort() 函数参考:https://www.cnblogs.com/john1015/p/13027152.html

  • 相关阅读:
    hdu 4027 Can you answer these queries?
    hdu 4041 Eliminate Witches!
    hdu 4036 Rolling Hongshu
    pku 2828 Buy Tickets
    hdu 4016 Magic Bitwise And Operation
    pku2886 Who Gets the Most Candies?(线段树+反素数打表)
    hdu 4039 The Social Network
    hdu 4023 Game
    苹果官方指南:Cocoa框架(2)(非原创)
    cocos2d 中 CCNode and CCAction
  • 原文地址:https://www.cnblogs.com/john1015/p/13026797.html
Copyright © 2011-2022 走看看