题目描述

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

思路

思路(1):看到这个题目我第一思路就是将数组里面的数字进行一个全排列,然后再对全排列的所有数字进行比较取最小的;但是该方法费时,费空间。代码不值得用。

思路(2):
1-我们先把int型数组用to_string函数转换成字符串;
2-我们用sort 函数对整个vector 中的字符串进行一个排序,但是这个排序规则需要我们自己设定。
规则:比如数字A和B,会排列成AB和BA 两个数字,若AB<BA ,则我们认为A<B。看具体代码。
3-将排列好的字符串合并成一个字符串输出。

思路(2)代码

class Solution {public:bool comp(const string & s1, const string & s2) {string res1, res2;res1 = s1 + s2;res2 = s2 + s1;return res1 < res2;}string PrintMinNumber(vector<int> numbers) {int len = numbers.size();string result="";vector<string> s;for (int i = 0; i < len; i++) {string tmp;tmp = to_string(numbers[i]);s.push_back(tmp);}sort(s.begin(), s.end(), comp);for (int j = 0; j < len; j++) {result += s[j];}return result;}
};

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

  1. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

    一.344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的 ...

  2. 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符

    一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...

  3. 《剑指offer》内容总结

    (1)剑指Offer--Trie树(字典树) Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种.典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常 ...

  4. 剑指offer所有的题目的总结

    目录 基本都是参考别的博客和书本的代码,仅作为自己笔记用!! 零.小结: 一.位运算 1.二进制中1的个数 2.判断二进制中0的个数 3.二进制高位连续0的个数 二.二叉树 1.二叉搜索树第k个结点 ...

  5. 剑指offer所有的题目总结

    自己找工作过程中进行的整理总结. 参考别的博客和书本的代码进行的总结,作为自己笔记用!! 零.小结: 一.位运算 1.二进制中1的个数 2.判断二进制中0的个数 3.二进制高位连续0的个数 二.二叉树 ...

  6. 剑指offer做题记录

    1. 剑指 Offer 03. 数组中重复的数字   力扣 class Solution { public:int findRepeatNumber(vector<int>& nu ...

  7. 剑指 offer 面试题精选图解 10-I.斐波那契数列

    大家好,我是程序员吴师兄,欢迎来到图解剑指 Offer 专栏,在这个专栏里我将和大家一起学习如何用合理的思维来思考.解题.写代码. 今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 ...

  8. 剑指offer第2版Python题解(更新中)

    O(n^2)排序 冒泡排序.插入排序与选择排序(Python)_NLP_victor的博客-CSDN博客 归并 归并排序(Python)_NLP_victor的博客-CSDN博客 快排 快速排序(Py ...

  9. 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java

    <LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...

  10. 剑指offer系列-30.包含min函数的栈

    剑指offer系列第30题.包含min函数的栈 题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中, 调用 min.push 及 pop 的时间复杂度都是 ...

最新文章

  1. java面向对象编程知识点总结
  2. python upper()函数和lower()函数(返回字符串中字母的大[小]写)(大写、小写)
  3. 计算机科学在航空航天仿真模拟,2016年南京航空航天大学计算机科学与技术学院541计算机综合基础之数据结构复试笔试仿真模拟题...
  4. 机器视觉与深度神经网络—洗去浮华,一窥珠玑
  5. 迷宫求解无敌版(递归调用法)
  6. jQuery学习笔记(二)—— 操作DOM元素
  7. Powershell配置SharePoint环境
  8. 均分纸牌模型之mxj分礼物
  9. 如何开启MySQL的慢查询日志
  10. Matlab: 汉字转拼音函数包
  11. C++基础知识点(3)
  12. 【SEU程序设计课笔记】 Mooc - Chapter 6 - (EX) - 泰勒展开求sin(x)/计算PI的近似值
  13. C++实现超简单的文件加密
  14. 蓝牙BR/EDR和Bluetooth Smart的十大重要区别
  15. 四、Solr数据源配置(JNDI、DIH)及定时重做索引
  16. CSS之盒子的边距塌陷(兄弟、父子)与解决方案
  17. java英语面试自我介绍_java面试英语自我介绍范文
  18. 从0开始学web-day2
  19. 药用辅料数据查询网站系统-药品辅料数据
  20. island of java_专业英语试卷

热门文章

  1. 贝尔曼方程怎么解_哈密顿-雅可比-贝尔曼方程
  2. 微信公众号开发--自定义菜单跳转页面并获取用户信息
  3. 记一个阿里巴巴 平台型产品经理 面试
  4. 使用PHP实现网易云音乐数据的获取
  5. VLAN链路类型和接口类型
  6. python 当前时间增加一个月
  7. 统计字符串中含指定字符个数
  8. 美团秋招高频面试问题汇总!(内附答案!)
  9. 质谱流式细胞技术 小笔记
  10. SXF 安全服务一面