首页 > 试题广场 >

最大正整数

[编程题]最大正整数
  • 热度指数:701 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

输入一个正整数数组,输出由数组里面所有数字组成的最大正整数; 如 {4, 2, 3} 得 432 。 

示例1

输入

[6,4,5,1]

输出

6541
降序排列数组然后拼起来就行
java版
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param arrs int整型一维数组 正整数数组
     * @return int整型
     */
    public int maxIntValue (int[] arrs) {
        // write code here
        Arrays.sort(arrs);
        int res = 0;
        for(int i = arrs.length - 1; i >= 0; i--)
            res = res * 10 + arrs[i];
        return res;
    }
}
scala版
object Solution {
    /**
    * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    *
    * 
        * @param arrs int整型一维数组 正整数数组
        * @return int整型
    */
    def maxIntValue(arrs: Array[Int]): Int = {
        // write code here
        arrs.sorted(Ordering[Int].reverse).mkString.toInt
    }
}
python版
class Solution:
    def maxIntValue(self , arrs ):
        # write code here
        return int(''.join(list(map(str, sorted(arrs, reverse=True)))))
笔试的时候为了节约时间,还是怎么简单怎么来
发表于 2021-09-22 09:53:29 回复(0)

"111" "35"

111>35 : 35111>11135

"35" > "111" : 35111>11135

classSolution {

public:

/**

 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

 *

 *

 * @param arrs int整型vector 正整数数组

 * @return int整型

 */

intmaxIntValue(vector& arrs) {

    // write code here

    vector s ;

    intn = arrs.size();

    if(!n) return0;

    for( inti = 0 ; i< n ; i++) s.push_back( to_string(arrs[i]));

    sort( s.begin() , s.end());

    intres =0;

    for( intj = s.size()-1;  j >=0 ; j--)

    {

        for( inti = 0 ; i < s[j].size();i++) res = res * 10 + s[j][i]-'0';

    }

    returnres;

}

};

编辑于 2022-03-20 01:50:47 回复(0)
C++版
int maxIntValue(vector<int>& arrs) {
        sort(arrs.begin(), arrs.end());
        int ans = 0;
        for(int i = (int)arrs.size() - 1; i >= 0; i--)
            ans = ans * 10 + arrs[i];
        return ans;
    }


发表于 2021-09-24 10:15:26 回复(1)