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

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

要找到最大的数,就是找到最高位最大的数放到最前面,由于每一个数都是不定长的,而且 c++中的string可以相互比较,所以可以将所有的数字都组合在一起,然后通过字符串拼接之后再进行比较的方式,将所有组合最大的放到最前面,然后将这些字符串连接起来就是所要的答案

class Solution {   public:    string largestNumber(vector
& nums) { vector
tar; string target; int i = 0, n = nums.size(); // 这个for循环是将数字转换成为字符串的过程,由于不记得系统库函数,只能自己编写一个了 for(; i < n; ++i) { if(nums[i] == 0) { tar.push_back("0"); continue; } target = ""; int k = 1, num = 0; while(nums[i] >= k) { ++num; k *= 10; } while(num >= 1) { target += '0' + nums[i] % int(pow(10, num)) / pow(10, num - 1); --num; } tar.push_back(target); } target = ""; // 对于每一个字符串,都判断一下 A + B 和 B + A 哪个更加大一些,将和所有字符串相加最大的一个放到最前面,以此类推 for(i = 0; i < n - 1; ++i) { for(int j = i + 1; j < n; ++j) { if(tar[i] + tar[j] < tar[j] + tar[i]) { swap(tar[i], tar[j]); } } } i = 0; // 如果第一个都是 “0” 串,那么后面的一定也是 “0” 串,这时候加的结果应该是“0”,而不是一串”0“ if(tar[i] == "0") { return "0"; } // 将结果拼接返回就好 for(; i < n; ++i) { target += tar[i]; } return target; }};

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

你可能感兴趣的文章
Nginx 相关介绍(Nginx是什么?能干嘛?)
查看>>
Nginx 知识点一网打尽:动静分离、压缩、缓存、跨域、高可用、性能优化...
查看>>
nginx 禁止以ip形式访问服务器
查看>>
NGINX 端口负载均衡
查看>>
Nginx 结合 consul 实现动态负载均衡
查看>>
Nginx 负载均衡与权重配置解析
查看>>
Nginx 负载均衡详解
查看>>
Nginx 负载均衡配置详解
查看>>
nginx 配置 单页面应用的解决方案
查看>>
nginx 配置dist 加上跨域配置
查看>>
nginx 配置https(一)—— 自签名证书
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx 配置服务器文件上传与下载
查看>>
Nginx 配置清单(一篇够用)
查看>>
Nginx 配置解析:从基础到高级应用指南
查看>>
Nginx 集成Zipkin服务链路追踪
查看>>
nginx 集群配置方式 静态文件处理
查看>>
Nginx+Django-Python+BPMN-JS的整合工作流实战项目
查看>>
Nginx+Keepalived实现简单版高可用主备切换
查看>>
nginx+mysql+redis+mongdb+rabbitmq 自动化部署脚本
查看>>