华为机试题 :最大数

题目描述

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分),使之组成一个最大的整数。

由于结果可能非常大,你只需要输出这个最大整数的字符串形式。

输入描述

第一行输入一个整数 n,表示数组长度。

第二行输入 n 个非负整数。

输出描述

输出重新排列后能组成的最大整数。

示例 1

输入

text

复制代码
3
10 2 30

输出

text

复制代码
30210

说明

排列为 30 2 10,组成 30210,是最大整数。

示例 2

输入

text

复制代码
4
3 30 34 5 9

输出

text

复制代码
9534330

C++ 解法

cpp

复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;

    vector<string> nums(n);
    for (int i = 0; i < n; i++) cin >> nums[i];

    sort(nums.begin(), nums.end(), [](const string& a, const string& b) {
        return a + b > b + a;
    });

    if (nums[0] == "0") {
        cout << "0" << endl;
        return 0;
    }

    string ans;
    for (auto& s : nums) ans += s;

    cout << ans << endl;
    return 0;
}
相关推荐
大雷神1 小时前
用鸿蒙开发助手推进《3D种植》鸿蒙版与 Flame 库适配
3d·华为·harmonyos
轻口味1 小时前
HarmonyOS 7 新特性7:闪控窗深潜——六态流转、错误码二维查表与730ms双通道滞后真机实测
华为·harmonyos·鸿蒙·floatview
zhenaibo5211 小时前
如何与导师有效沟通选题?
算法
熊猫钓鱼>_>1 小时前
大学图论第 6 讲:网络流与二分图匹配——对偶性让瓶颈自己现形
开发语言·算法·面试·职场和发展·图论·校招·面经
方便面不加香菜1 小时前
C++ 关于多态的知识点讲解
开发语言·c++
程序猿追1 小时前
从 24 到 25 字节:compactstr4cj 的 CJMP 鸿蒙适配与 UTF-8 实测
华为·harmonyos
没有钱的钱仔1 小时前
最大似然估计(MLE)通俗理解
算法·机器学习·概率论
yi0112 小时前
LeetCode 424. 替换后的最长重复字符|不定长滑动窗口:如何判断窗口是否合法?
笔记·python·算法·leetcode·双指针·滑动窗口
jimy12 小时前
C++ 类成员函数的内联定义(inline)详解
开发语言·c++