zoukankan      html  css  js  c++  java
  • 面试题33:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 * 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

     package ;

    import java.util.Arrays;
    import java.util.Comparator;
    import java.util.Scanner;
    
    /**
     * @Name:
     * @Description:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
     * 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
     * @Author: Allen
     */
    public class SortArrayToMinNum33 {
        public static void main(String args[]){
            Scanner scanner = new Scanner(System.in);
            int length = scanner.nextInt();
            int intArr[] = new int[length];
            for(int i=0; i<length; i++){
                intArr[i]=scanner.nextInt();
            }
            Solution33 solution33 = new Solution33();
         StringOfInt[] stringOfInts=solution33.intToString(intArr);
         if(stringOfInts.length>0){
        
    for(StringOfInt stringOfInt : stringOfInts){      System.out.print(stringOfInt.s);     }
          } System.out.println(); } }
    class Solution33{ StringOfInt[] intToString(int[] intArr){ if(intArr==null || intArr.length==0){
          return;
          }
    StringOfInt strArr[]
    = new StringOfInt[intArr.length]; for(int i=0; i<strArr.length; i++){ strArr[i]=new StringOfInt(); strArr[i].s=String.valueOf(intArr[i]); } Arrays.sort(strArr,new StringComparator());//用自定义的比较器进行排序 return strArr; } } class StringComparator implements Comparator<StringOfInt>{ @Override public int compare(StringOfInt o1, StringOfInt o2) { String s1=o1.s+o2.s; String s2=o2.s+o1.s; int ret=0; if(s1.compareTo(s2)<0){ ret=-1; }else if(s1.compareTo(s2)>0){ ret=1; }else ret=0; return ret; } } class StringOfInt{ String s; }
  • 相关阅读:
    京东架构师:前端工程化在京东首页实践
    CSS 的命名和书写
    call,apply,bind方法的总结
    this指针指向的彻底理解
    Js获取当前日期时间及其它操作
    gulp-css-spriter 雪碧图合成
    Web前端业界氛围极好的群——鬼懿IT
    默认加载数据分页,点击分页后再次异步数据
    height设置百分比的条件
    input 的type类型值
  • 原文地址:https://www.cnblogs.com/Allen-win/p/8290508.html
Copyright © 2011-2022 走看看