【发布时间】:2022-11-21 03:36:13
【问题描述】:
我的实验室教授给出的一个问题,如标题所示:找到给定整数列表/数组的最大组合。IE:
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
我最近的尝试是按字典顺序比较整数的字符串值。但是输出仍然不正确 777568211210>75768211210
【问题讨论】:
-
你能更精确吗?解释这种组合是如何工作的?它是什么类型的操作,还是只是将值连接在一起,例如 12 + 22 = 1222?
-
您是否了解解决方案不是对数组进行排序?
["19", "9"]最大化为 919 而不是 199 -
我目前只是将整数的字符串值连接在一起:>
-
我的编程经验很少,我最初的想法是排序,因为我没有考虑过那些情况。