博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客_把数组排成最小的数
阅读量:3903 次
发布时间:2019-05-23

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

题目

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

思路

1.首先这个拼接数组中的操作怎么实现?组成一个字符串

to_string()可以把int转成字符串

2.是不是要把所有的组合都选出来,然后一个一个的比较最小值

怎么感觉可以往动态规划中考虑??

代码

class Solution1 {
public: string PrintMinNumber(vector
numbers) {
vector
str; for(int val : numbers) str.push_back(to_string(val)); //把vector
转换为vector
#if 0 sort(str.begin(), str.end(),[&](string a,string b){
return a + b < b + a; }); //自定义规则 #endif sort(str.begin(),str.end()); //从小到大 cout<<"0:"<
<< " "<<"1:"<
<< " "<<"2:"<
<
aa(3); aa[0] = 3; aa[1] = 3222; aa[2] = 321; a.PrintMinNumber(aa);}

在这里插入图片描述

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

你可能感兴趣的文章
Numpy为图片四周补0
查看>>
数字图像处理中的 channels_first与channels_last
查看>>
ArcGIS 10.2 简化面/线工具Bug修复
查看>>
GPU
查看>>
Android Audio Feature
查看>>
我的自传
查看>>
专业音频术语中英文对照
查看>>
集成电路专业术语简介
查看>>
成长日记
查看>>
从3个科技公司里学到的57条经验
查看>>
程序员应该投资的10件事
查看>>
多媒体
查看>>
沟通技巧
查看>>
专业camera/isp术语中英文对照
查看>>
摄像头
查看>>
我的理想,我的奋斗目标
查看>>
Nginx基于多域名、多端口、多IP配置虚拟主机
查看>>
一次Linux 系统受攻击的解决过程
查看>>
最新最全Apache源码编译安装
查看>>
最新mysql数据库源码编译安装。
查看>>