我试图解决来自Geeksforgeeks的最大整数值问题。
问题说明如下:给定一个由数字 (0-9) 组成的字符串 S,您的任务是通过在遍历时在数字之间放置“*”或“+”运算符来找到可以从字符串中获得的最大值从字符串的左到右,一次选择一个数字。
输入:输入的第一行包含 T 表示测试用例的数量。T 测试用例如下。每个测试用例包含一行表示字符串的输入。
输出:对于每个测试用例,打印获得的最大值。
这就是我所做的:
class GFG
{
public static void sort(int[] numbers)
{
int n = numbers.length;
for (int i = 1; i < n; ++i)
{
int key = numbers[i];
int j = i - 1;
while (j >= 0 && numbers[j] > key)
{
numbers[j + 1] = numbers[j];
j = j -1 ;
}
numbers[j + 1] = key;
}
System.out.println(numbers.length - 1);
}
public static void main (String[] args)
{
Scanner sc = new Scanner(System.in);
int testCases = sc.nextInt();
int [] maxNum;
for(int i = 0; i< testCases; i++)
{
String numbers = sc.nextLine();
char[] cNumbers = numbers.toCharArray();
maxNum = new int [cNumbers.length];
for(int j = 0; j + 1 < cNumbers.length; j++)
{
int sum = 0;
int mult = 0;
sum = cNumbers[j] + cNumbers[j + 1];
mult = cNumbers[j] * cNumbers[j + 1];
int maxNumber = Math.max(sum, mult);
maxNum[i] = maxNumber;
}
sort(maxNum);
}
}
}
输入示例:2 01230 891 我的输出:-1 4 正确输出:9 73
我的代码有什么问题?!
慕尼黑5688855
相关分类