Java初学,这个代码哪里错了,谢谢大佬

程梦 2019-09-05 04:53:15
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); int number=in.nextInt(); for(int i=1;i<=number;i++) { int length=in.nextInt(); int []result=new int[length]; for(int j=0;j<length;j++) { result[j]=in.nextInt(); } maxsum(result,i); if(i<number) { System.out.println(); } } } public static void maxsum(int a[],int chishu) { int n=0; int max=a[0]; int start=0; int end=0; for(int num:a) { if(num>=0) { n=1; break; } start++; } if(n==0) { int position=1; for(int i=0;i<a.length;i++) { if(max<a[i]) { max=a[i]; position=i+1; } } System.out.println("Case "+chishu+":"); System.out.println(max+" "+position+" "+position); } else { int sum=0; for(int j=start;j<a.length;j++) { sum+=a[j]; if(max<sum) { max=sum; end=j; } } System.out.println("Case "+chishu+":"); System.out.println(max+" "+(start+1)+" "+(end+1)); } } } 杭电的1003
...全文
80 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
程梦 2019-09-05
  • 打赏
  • 举报
回复
引用 5 楼 wowpH的回复:
你只考虑了第一个正数开始的子序列。没有考虑后面的正数开始的子序列。
嗯嗯,已经ac了,谢了
wowpH 2019-09-05
  • 打赏
  • 举报
回复
你只考虑了第一个正数开始的子序列。没有考虑后面的正数开始的子序列。
wowpH 2019-09-05
  • 打赏
  • 举报
回复
你的思路不全正确。你试试这个就知道了。明显是错的。

正确结果应该是
1
5 1 -2 6 5 -7
Case 1:
11 3 4
  • 打赏
  • 举报
回复
你这是要求最大和?为什么要带上负数 原谅我的英语理解能力
程梦 2019-09-05
  • 打赏
  • 举报
回复
引用 1 楼 java不去卖麻辣烫的回复:
对不起 恕在下无力解决你这个逻辑
试了好几组数据,答案都是对的😂😂
  • 打赏
  • 举报
回复
对不起 恕在下无力解决你这个逻辑

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧