题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
解题思路:本题比较mn 和 nm,哪个小就怎么排
1)首先将每一个数字以字符串的形式拷入strName中
2)对其调用排序。排序按我们设计的compare规则比较
3)将排好序的数组存入结果中,返回结果
 1 bool compare(const string &st1,const string &st2)
 2 {
 3     string s1 = st1 + st2;
 4     string s2 = st2 + st1;
 5     return s1 < s2;
 6 }
 7 class Solution {
 8 public:
 9     const int g_MaxNumberLength=10;
10     string PrintMinNumber(vector<int> numbers) {
11         string result;
12         int length = numbers.size();
13         if(length <= 0)
14             return result;
15         char** strNumbers=new char*[length];
16         for(int i=0;i<length;i++)
17         {
18             strNumbers[i]=new char[g_MaxNumberLength+1];
19             sprintf(strNumbers[i],"%d",numbers[i]);
20         }
21         sort(strNumbers,strNumbers+length,compare);
22         for(int i=0;i<length;i++)
23             result.append(strNumbers[i]);
24
25         for(int i=0;i<length;i++)
26             delete[] strNumbers[i];
27         delete[] strNumbers;
28         return result;
29     }
30 };

转载于:https://www.cnblogs.com/qqky/p/6958780.html

32、剑指offer--把数组排成最小的数相关推荐

  1. 剑指offer 把数组排成最小的数 atoi和itoa,pow

    pow(x,y)在#include<math.h>文件中,计算x的y次方. C++引入头文件:#include <stdlib.h> 或者 #include <cstdl ...

  2. 4-剑指offer: 把数组排成最小的数

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

  3. 剑指offer 旋转数组的最小数字

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组 ...

  4. [剑指offer] 旋转数组的最小数字

    本文首发于我的个人博客:尾尾部落 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2 ...

  5. 剑指offer之数组中重复的数(Java实现)

    数组中重复的数 NowCoder 题目描述 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的, 也不知道每个数字重复几次.请找出数 ...

  6. 剑指offer.01 数组中重复的数(0504刷题自用)

    代码 class Solution {public:int findRepeatNumber(vector<int>& nums) {unordered_map <int,i ...

  7. 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格

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

  8. 【LeetCode】剑指 Offer 45. 把数组排成最小的数

    [LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...

  9. 剑指 Offer 笔记: T45. 把数组排成最小的数

    T45. 把数组排成最小的数 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" ...

  10. 【剑指offer-Java版】33把数组排成最小的数

    把数组排成最小的数 难点在于比较规则的确定以及比较规则的正确性证明 比如:仅仅是局部的两个数字的顺序较小,如何保证整个数组按此规则进行排序后达到全局的较小 书中关于这一点的证明直接用的反证法,忘的差不 ...

最新文章

  1. Betriebssystem I 操作系统课件 01. Evolution von Rechnersystemen 计算机操作系统的演变
  2. 桥牌笔记:三个输墩压缩为一个
  3. 优秀logo设计解析_必修课 | 抛开固有思维,品牌amp;logo设计不求人!
  4. 生成android证书
  5. javascript包装对象
  6. 计算机硬件:内存常识知多少?内存知识盲区详解
  7. 行业新闻 | 阿里发力知识图谱研究 悉数囊括顶尖学者探讨合作
  8. Linux手动导入导出mysql数据库
  9. 根据文件大小搜索电脑文件
  10. 测试计划和测试方案区别
  11. 中文繁体与简体字转换
  12. 李忠汇编语言-初学-第九章详解
  13. OpenWrt 防火墙基础过滤--域名过滤
  14. 图片转为pdf怎么弄?发送图片安全高效的格式
  15. android自定义3d饼图,Android使用j4lChartAndroid插件绘制3D饼图
  16. Eplan-中断点(3)
  17. 7月 显卡选购指南矿难矿卡环境下选购选卡 AMD 6700 与6750xt 等解决方案
  18. 广告VS电商 抖音快手的变现之争
  19. 我电脑感染了一种奇怪的病毒,它点中了我的笑穴!
  20. android pixelflinger 研究,Android Pixelflinger 研究

热门文章

  1. 江苏计算机类事业编总分多少,必看!江苏事业单位统考三类岗位分值分布
  2. 内存分配-堆-栈-静态区
  3. php连接mysql代码+类_php连接mysql操作类
  4. 【CF-gym101964:B】Broken Watch(找规律+推导+自然溢出/java大数)
  5. IDEA中XML与main文件里设置自动补全快捷键
  6. tushare pro积分规则
  7. java如何对单词排序_java - 如何按第二个单词对列表进行排序? [重复] - SO中文参考 - www.soinside.com...
  8. TSAP(1) : DateTimes
  9. TensorFlow基础:Session(会话)
  10. 算法:动态规划 最大连续子数组和 Maximum Subarray