剑指offer:把数组排成最小的数】的更多相关文章

题目链接 https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993?tpId=13&tqId=11185&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题意 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,32…
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 分析: 排序的变形. 自定义比较函数: 比较3和32: 将3和32拼接在一起为332,将32和3拼接在一起为323,比较这两个数的大小332>323,那么32应该排在3的前面. 其他数类似.. 代码: class Solution { public: string PrintMinNumber(vector<…
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路 对vector容器内的数据进行排序,按照 将a和b转为string后 若 a+b<b+a a排在在前 的规则排序, 如 2 21 因为 212 < 221 所以 排序后为 21 2 to_string() 可以将int 转化为string 牛客网链接 js代码 function PrintMinNumb…
pow(x,y)在#include<math.h>文件中,计算x的y次方. C++引入头文件:#include <stdlib.h> 或者 #include <cstdlib> 1.整数转化为字符串的方法: 1.1 atoi原型:注意:参数若为string类型一定转换成char*型(str.c_str()) #include <stilib.h>或者#include<cstdlib> int atoi(const char *str); atoi…
这两个题几乎是一样的,只是leetcode的题是排成最大的数,剑指的题是排成最小的 179. Largest Number a.需要将数组的数转换成字符串,然后再根据大小排序,这里使用to_string函数将整数转换成字符串,比printf的方式简洁 b.cmp函数必须用static才能使用 c.这题需要排成最大的数,cmp函数如何确定< .>符合呢?cmp中可以默认为a就是两个字符中的第一个,b是第二个,所以a+b>b+a返回true就继续保持这样的排列.如果是<,a+b就会返回…
用to_string()将整形转化为字符串,对字符串进行比较 ------------------------------------------------------------------------------------------ 时间限制:1秒 空间限制:32768K 热度指数:213153 本题知识点: 数组 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为…
题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 分析: 将数组元素按照特定的规则从小到大排列,最后遍历数组拼接字符串即可,但重点是什么样的规则. 在比较3和321的大小时,我们希望得到321小于3,这样拼接出来的数字3213是要小于3321,所以两个数字a和b比较大小时,将它们转换成字符串形式拼接成ab和ba来比较,ab小于ba则a小于b,根据这样的规则,将数…
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 代码: class Solution { public: string PrintMinNumber(vector<int> numbers) { vector<std::string> numbers_str; for(int data : numbers) { numbers_str.push…
/************************************************************************* > File Name: 31_SortArrayMin.cpp > Author: Juntaran > Mail: JuntaranMail@gmail.com > Created Time: 2016年09月02日 星期五 11时10分42秒 *******************************************…
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.NOTE:给出的所有元素都大于0,若数组大小为0,请返回0.     思路: 法一:输入的是非递减数组的旋转,顺序遍历,当a[i]>a[i+1]时,a[i+1]为最小元素    ,时间复杂度O(n); 法二:二分查找的变种,旋转数组头尾各一指针l,h,中间元素指针mid,如果*…