zoukankan      html  css  js  c++  java
  • 牛客(32)把数组排成最小的数

        //    题目描述
    //    输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
    //    例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
        public static String PrintMinNumber(int[] numbers) {
            String result ="";
            TreeSet<String> strings = new TreeSet<String>();
    
            Permutation(numbers, 0, strings);
    
            if (strings.size()>0){
                result = strings.first();
            }
            return result;
        }
    
    
        public static void Permutation(int[] ints, int start, TreeSet<String> arrayList) {
            //结束条件
            if (start > ints.length - 1 || ints == null) {
                return;
            }
            if (start == ints.length - 1) {
                arrayList.add(intToString(ints));
            } else {
    
                for (int i = start; i < ints.length; i++) {
                    if (i == start) {
                        //start 是第一个
                        Permutation(ints, start + 1, arrayList);
                    } else {
                        //start 不是第一个
                        //交换
                        swap(ints, start, i);
                        Permutation(ints, start + 1, arrayList);
                        //恢复
                        swap(ints, start, i);
                    }
                }
            }
        }
        public static String intToString(int[] ints) {
            StringBuilder stringBuilder = new StringBuilder();
    
            for (int i=0;i<ints.length;i++){
                stringBuilder.append(ints[i]);
            }
            return stringBuilder.toString();
        }
    
        public static void swap(int[] ints, int start, int end) {
            int temp = ints[start];
            ints[start] = ints[end];
            ints[end] = temp;
        }
  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/kaibing/p/9040756.html
Copyright © 2011-2022 走看看