猿问

最大整数值java

我试图解决来自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


我的代码有什么问题?!


慕斯709654
浏览 156回答 3
3回答

慕尼黑5688855

快速浏览一下,如果您的数字小于 2,则应该添加它。2 或更大的应该乘以。不是在 PC 上进行测试。
随时随地看视频慕课网APP

相关分类

Java
我要回答