import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt(); //taking input number of elements in the array
int[] a=new int[n];
for(int i=0;i<n;i++){
a[i]=scan.nextInt(); //taking input elements of the array
}
int count=0;
//start point
for(int i=0;i<n;i++){
//end point
for(int j=i;j<n;j++){
for(int k=i;k<=j;k++){
int sum=0;
sum+=a[k]; //calculating the sum of subarray
if(sum<0)
count++;
}
}
}
System.out.println(count); //printing the no of negative sums
}
}
这里有三个嵌套循环,第一个循环定义开始位置,第二个循环定义结束位置,第三个循环用于遍历子子元素并计算它们的和,如果和小于零,则增加计数。但是使用此代码,我得到的答案是错误的。
答案 0 :(得分:1)
不需要第三次循环
int count = 0;
for(int i = 0; i < n; i++) { // for start position
int sum = 0;
for(int j = i; j < n; j++) { // for end position
sum += a[j];
if(sum < 0) {
count++;
}
}
}
// output count