华为机试题 :最大数

题目描述

给定一组非负整数 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;
}
相关推荐
艾莉丝努力练剑10 分钟前
【AI大模型接入SDK】ChatServer接口测试
网络·c++·人工智能·学习·ai·大模型·sdk
D e re k ZH20 分钟前
C++ 模板与泛型编程进阶(No 2)
开发语言·c++
hahaha601623 分钟前
数字图像时域滤波或者3D降噪算法FPGA实现
算法·计算机视觉·fpga开发
YSL07012429 分钟前
一文通关-----树和二叉树
数据结构·算法
青少儿编程课堂31 分钟前
蓝桥杯青少组图形化+信息素养+电子学会Scratch考级:校园口算闯关解析
c++·python·算法·bfs·信息学竞赛
eggwyw34 分钟前
C++深入浅出探索数据结构的原理
开发语言·c++
eggwyw36 分钟前
C++深入浅出讲解希尔排序算法的实现
开发语言·c++
computersciencer37 分钟前
应用贝叶斯公式:迟到了,那坐的是哪种交通工具呢?
算法·机器学习·概率论
若亦_41 分钟前
排序>>交换排序
java·数据结构·算法
万物智能信息科技1 小时前
指纹识别传感器驱动开发—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
驱动开发·华为·开源·harmonyos·鸿蒙