ITPub博客

首页 > 应用开发 > Java > 把数组排成最小的数

把数组排成最小的数

Java 作者:一只小木鱼 时间:2020-12-25 10:24:51 1 删除 编辑

题目

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

思路

这道题本质是一个排序题目,只不过排序的条件变成了将两个数组合起来再比较大小。所以这道题利用冒泡排序就能搞定,其他排序算法也ok。

代码

using System.Text;using System;class Solution{
    public string PrintMinNumber(int[] numbers)
    {
        // write code here
        if(numbers==null || numbers.Length==0)
        {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        StringBuilder sb2 = new StringBuilder();
        int k;
        for(int i=numbers.Length-1;i>=0;i--)
        {
            for(int j=0;j<i;j++)
            {
                sb.Clear();
                sb2.Clear();
                sb.Append(numbers[j].ToString());
                sb.Append(numbers[j+1].ToString());
                sb2.Append(numbers[j+1].ToString());
                sb2.Append(numbers[j].ToString());
                if(sb.ToString().CompareTo(sb2.ToString())==1)//代表sb>sb2
                {
                    k=numbers[j];
                    numbers[j]=numbers[j+1];
                    numbers[j+1]=k;
                }
            }
        }
        sb.Clear();
        for(int j=0;j<numbers.Length;j++)
        {
            sb.Append(numbers[j].ToString());
        }
        return sb.ToString();
    }}

文章来源:CSDN 糟糕点师


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69991606/viewspace-2745212/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-12-24

  • 博文量
    12
  • 访问量
    6202