java 在给定的整数列表/数组中查找最大组合

rxztt3cl  于 2022-11-20  发布在  Java
关注(0)|答案(1)|浏览(157)

我的实验室教授提出的一个问题,题目是:* 在给定的整数列表/数组中查找最大的组合。* 即:

input: {10, 68, 75, 7, 21, 12}
stdout: 77568211210
my output : 75768211210

当前代码:

import java.util.*;
import java.lang.*;

public class classwork6
{
    static Scanner in = new Scanner(System.in);
    static void sort(String[] arr)
    {
        for(int i=0;i<arr.length;i++)
        {
            for(int j=i+1;j<arr.length;j++)
            {
                if(arr[i].compareTo(arr[j])<0)
                {
                    String temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
    public static void main(String[] args)
    {
        int[] list = {10, 68, 75, 7, 21, 12};
        String[] arr = new String[list.length];
        for(int i=0;i<list.length;i++)
        {
            arr[i] = String.valueOf(list[i]);
        }
        sort(arr);
        System.out.print(Arrays.toString(arr).replaceAll("[\\[\\], ]",""));
    }
}

我的第一次尝试是简单地对数组排序,之后我很快发现777568211210〉75682112107
我最近的尝试是按字典顺序比较整数的字符串值。

noj0wjuj

noj0wjuj1#

你的思路是对的,但想想看,哪个数字会给最终结果给予更多的好处:91或911。
很明显,较短的数字有更多的“可能性”得到较高的数字。因此,如果两个数字以相同的字符开始,你的排序应该优先考虑较短的数字

相关问题