博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指OFFER之把数组排成最小的数(九度OJ1504)
阅读量:5789 次
发布时间:2019-06-18

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

hot3.png

题目描述:

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

 

输入:

输入可能包含多个测试样例。

对于每个测试案例,输入的第一行为一个整数m (1<=m <=100)代表输入的正整数的个数。
输入的第二行包括m个正整数,其中每个正整数不超过10000000。

 

输出:

对应每个测试案例,

输出m个数字能排成的最小数字。

 

样例输入:
323 13 6223456 56

 

样例输出:
132362345656

解题思路:

  首先,最普通的思路就是权进行一次排列,找出最小的数。但是这样可能会超时。

 

  这里,我们首先对数列进行排序,最后进行一次整合。算法上面主要采取冒泡排序,对每个数与其前面的数进行比较。

void bubbleSort(char c[][10],int n){    int i,j;    for( i=n-1 ; i>0 ; i-- ){        for(j = n-1;j>(n-1-i);j--){            if(findSmall(c,j))                swap(c,j,j-1);        }    }}

 

 

在比较时,采用特别的思路----把两个字符串进行拼接,如果字符串1排在前面的数小,那么就把字符串1放到前面。

int findSmall(char c[][10],int i){    char stri[20];    char strj[20];    strcpy(stri,c[i]);    strcpy(strj,c[i-1]);    strcat(stri,c[i-1]);    strcat(strj,c[i]);    int k;    int length = strlen(stri);     for(k=0;k

 

排序后,可以保证直接进行连接的数列是最小的。

全部代码:

 

#include 
#include
#include
void bubbleSort(char c[][10],int n);int findSmall(char c[][10],int i);void swap(char c[][10],int i,int j);int main(){ int n,i; while(scanf("%d",&n)!=EOF && n>0 && n<=100 ){ int arr[100]; char c[100][10]; char string[1000]; for(i=0;i
0 ; i-- ){ for(j = n-1;j>(n-1-i);j--){ if(findSmall(c,j)) swap(c,j,j-1); } }}int findSmall(char c[][10],int i){ char stri[20]; char strj[20]; strcpy(stri,c[i]); strcpy(strj,c[i-1]); strcat(stri,c[i-1]); strcat(strj,c[i]); int k; int length = strlen(stri); for(k=0;k

 

 

 

转载于:https://my.oschina.net/u/204616/blog/545011

你可能感兴趣的文章
STL 算法
查看>>
分享:Backbone.js 样例站点与入门指南
查看>>
图的基本算法
查看>>
《架构之美》摘录三
查看>>
myeclipse6.5上基于JAX-WS开发Webservice(中文示例)
查看>>
HTML基础(一)
查看>>
谈谈冒烟测试
查看>>
boost.circular_buffer简介
查看>>
Database Appliance并非Mini版的Exadata-还原真实的Oracle Unbreakable Database Appliance
查看>>
CORTEX-M3 异常/中断控制(使能和除能)
查看>>
网页图片缩放(js)
查看>>
没有设计模式画小人,有趣画板
查看>>
Silverlight 浏览器外运行及更新判断
查看>>
(转)NS2无线网络遗失模型
查看>>
虚拟化架构中小型机构通用虚拟化架构
查看>>
cocoa touch 组件
查看>>
Oracle体系结构及备份(十)——sga-others_pool
查看>>
Bootstrap Popover 隐藏的Javasript方法
查看>>
memcache使用方法测试
查看>>
POJ 3347 Kadj Squares
查看>>