面试题33:把数组排成最小的数
来源:互联网 发布:shuttle mac 编辑:程序博客网 时间:2024/06/05 19:25
面试题33:把数组排成最小的数
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
代码:
package offer;/** * 面试题33:把数组排成最小的数 * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 * 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 */public class _33_min_array {public static void main(String[] args) {Solution33 solution33 = new Solution33();int[] numbers={3,32,321};System.out.println(solution33.PrintMinNumber(numbers));}}class Solution33 { public String PrintMinNumber(int [] numbers) { StringBuilder sb1=new StringBuilder(""); if(numbers.length==0){ return sb1.toString(); } StringBuilder sb2=new StringBuilder(""); StringBuilder result=new StringBuilder(); for(int i=0;i<numbers.length-1;i++){ for(int j=i+1;j<numbers.length;j++){ sb1.append(numbers[i]); sb1.append(numbers[j]); sb2.append(numbers[j]); sb2.append(numbers[i]); if(sb1.toString().compareTo(sb2.toString())>0){ int tmp=numbers[i]; numbers[i]=numbers[j]; numbers[j]=tmp; } sb1.delete(0, sb1.length()); sb2.delete(0, sb2.length()); } } for(int k=0;k<numbers.length;k++){ result.append(numbers[k]); } return result.toString(); }}
0 0
- 面试题33:把数组排成最小的数
- 面试题33:把数组排成最小的数
- 面试题33 把数组排成最小的数
- 面试题33:把数组排成最小的数
- 面试题33_把数组排成最小的数
- 面试题33把数组排成最小的数
- 面试题33:把数组排成最小的数
- 面试题33:把数组排成最小的数
- 面试题33:把数组排成最小的数
- 面试题33:把数组排成最小的数
- 面试题33—把数组排成最小的数
- 面试题33:把数组排成最小的数
- 面试题 33: 把数组排成最小的数
- 剑指Offer面试题33把数组排成最小的数,面试题34丑数
- 【百度面试题】把数组排成最小的数
- 面试题37:把数组排成最小的数
- [面试题11]把数组排成最小的数
- 【百度面试题】把数组排成最小的数
- MATLAB下的多项式拟合
- 文章标题
- U3D Anchors
- 算法训练 删除数组零元素
- 线性代数复习
- 面试题33:把数组排成最小的数
- 欢迎使用CSDN-markdown编辑器
- 文章标题
- Activiti工作流-笔记2
- android 拍照及录视频简单的实例
- select、poll、epoll比较
- 网易2016研发工程师编程题
- unix 管道符号、gerp、xargs小技巧
- ubuntu登录界面循环登录