博客
关于我
算法——179、最大数(力扣)
阅读量:659 次
发布时间:2019-03-14

本文共 1421 字,大约阅读时间需要 4 分钟。

在解决这个问题时,我们需要将所有的数字组合在一起,然后通过字符串拼接的方式进行比较,最终得到一个最大的数字。这种方法可以利用字符串的便利性来处理不定长的数字问题。

我们可以通过以下步骤来实现这一目标:

  • 为每个数字创建字符串表示:

    • 遍历数字列表,将每个数字转换为字符串形式,这样可以便于后续的比较和拼接操作。
  • 比较字符串拼接的结果:

    • 对于每两个字符串,比较它们的两种拼接顺序(AB 和 BA),选择较大的顺序添加到结果中。
  • 优化字符串的顺序:

    • 因此字符串连接起来形成最大的数。
  • 具体实现代码如下:

    #include 
    #include
    #include
    using namespace std;
    string largestNumber(vector
    & nums) {
    vector
    tar;
    for (size_t i = 0; i < nums.size(); ++i) {
    string target;
    int num = nums[i];
    if (num == 0) {
    tar.push_back("0");
    continue;
    }
    int k = 1;
    while (k <= num) {
    k *= 10;
    }
    int power = 1;
    while (power <= num) {
    power *= 10;
    }
    power /= 10;
    while (power > 0) {
    target += ('0' + (num % power));
    num /= power;
    power /= 10;
    }
    tar.push_back(target);
    }
    for (size_t i = 0; i < tar.size() - 1; ++i) {
    for (size_t j = i + 1; j < tar.size(); ++j) {
    if (tar[i] + tar[j] < tar[j] + tar[i]) {
    swap(tar[i], tar[j]);
    }
    }
    }
    if (tar.empty()) {
    return "0";
    }
    string result;
    for (const auto& s : tar) {
    result += s;
    }
    return result;
    }

    这个方法通过比较每两个字符串拼接的结果,选择最大的顺序,最终得到最大的数字拼接结果。这样,我们就可以将所有的数字有效地组合起来,得到一个最大的数值。

    转载地址:http://tfeoz.baihongyu.com/

    你可能感兴趣的文章
    NodeJs单元测试之 API性能测试
    查看>>
    nodejs图片转换字节保存
    查看>>
    nodejs在Liunx上的部署生产方式-PM2
    查看>>
    nodejs基于art-template模板引擎生成
    查看>>
    nodejs字符与字节之间的转换
    查看>>
    NodeJs学习笔记001--npm换源
    查看>>
    NodeJs学习笔记002--npm常用命令详解
    查看>>
    nodejs学习笔记一——nodejs安装
    查看>>
    vue3+Element-plus icon图标无法显示的问题(已解决)
    查看>>
    NodeJS实现跨域的方法( 4种 )
    查看>>
    nodejs封装http请求
    查看>>
    nodejs常用组件
    查看>>
    nodejs开发公众号报错 40164,白名单配置找不到,竟然是这个原因
    查看>>
    Nodejs异步回调的处理方法总结
    查看>>
    NodeJS报错 Fatal error: ENOSPC: System limit for number of file watchers reached, watch ‘...path...‘
    查看>>
    nodejs支持ssi实现include shtml页面
    查看>>
    Nodejs教程09:实现一个带接口请求的简单服务器
    查看>>
    nodejs服务端实现post请求
    查看>>
    nodejs框架,原理,组件,核心,跟npm和vue的关系
    查看>>
    Nodejs概览: 思维导图、核心技术、应用场景
    查看>>