gpt4 book ai didi

java - Java中使用Kadane算法求子数组的最大和

转载 作者:行者123 更新时间:2023-12-02 09:50:37 29 4
gpt4 key购买 nike

这是极客为极客提供的问题陈述(链接:https://practice.geeksforgeeks.org/problems/kadanes-algorithm/0)

我的代码按照“编译和测试”选项运行良好。但是当我尝试提交时,它会抛出有关多个测试用例失败的错误。

谁能帮我解决这个问题吗?

代码:

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;


public class Kadane

{
public static void main(String[]args) throws IOException,NumberFormatException

{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Enter the number of test cases");
int T = Integer.parseInt(br.readLine());

for(int t=0 ; t<T ; t++)
{
int N,a=0;
int sum1=0,maxsum=-2147483648,kadanesum=-2147483648;

System.out.println("Enter the size of array : ");
N = Integer.parseInt(br.readLine());
int arr[] = new int[N];

System.out.println("Enter the array elements separated by space");
String S = new String(br.readLine());
String elem[] = S.split(" ");

for(String e:elem)
{
arr[a] = Integer.parseInt(e);
a++;
}

for(int i=0 ; i<N ; i++)
{
for(int j=i ; j<N ; j++)
{
sum1 = sum1 + arr[j];
if(maxsum<sum1)
{
maxsum=sum1;

}
}
if(maxsum>kadanesum)
{
kadanesum=maxsum;
}
sum1=0;
maxsum=-2147483648;
}

System.out.println("\tKadane Sum = " + kadanesum);

}
}
}

我的代码链接:https://ide.geeksforgeeks.org/tXNHh28A0D

我的输入:5(测试用例数量)

3(数组大小)

1 2 3(数组元素)

5

1 2 3 -2 5

10

2 9 3 -10 -20 34 28 -50 30 -1

7

4 5 -10 -50 3 9 8

8

8 9 8 -25 25 1 2

我的输出:输入测试用例的数量

输入数组的大小:输入数组元素,以空格分隔卡丹总和 = 6

输入数组的大小:输入数组元素,以空格分隔卡丹总和 = 9

输入数组的大小:输入数组元素,以空格分隔卡丹总和 = 62

输入数组的大小:输入数组元素,以空格分隔卡丹总和 = 20

输入数组的大小:输入数组元素,以空格分隔卡丹总和 = 28

提交代码时收到以下错误消息:

错误答案。 !!!错误的答案您的代码可能无法在多个测试用例 (TC) 中正常工作。您的代码失败的第一个测试用例:

输入:(根据网站)31 2 3

其正确输出是:6

我在输入测试用例(测试用例 1)中使用了相同的输入,并且输出与预期相同。

有人可以帮我使用 StringBuffer 优化代码吗?

最佳答案

输出应该是总和:

System.out.println(kadanesum);

而不是您写的消息:

System.out.println("\tKadane Sum = " + kadanesum);

正如 Rahul 指出的,您还需要删除其他消息,例如:

System.out.println("Enter the array elements separated by space");

关于java - Java中使用Kadane算法求子数组的最大和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56342017/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com