2016-10-03 1 views
0

問題ステートメント:指定された配列から負のサブ配列の数を出力するにはどうすればよいですか?

n個の整数の配列を考えると、検索して、新しい行に負のサブアレイのその番号を印刷する(その要素の総和が負の場合サブアレイが負である。)

サンプル入力

1 -2 4 -5 1

サンプル出力

結果私のコード収率

その入力(stdin)

1 -2 4 -5 1

あなたの出力(標準出力)0123間違った回答

予想される出力

コンパイラメッセージ

マイコード:

import java.io.*; 
import java.util.*; 
import java.text.*; 
import java.math.*; 
import java.util.regex.*; 

public class Solution { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     int n = scan.nextInt(); 
     int a[] = new int[n]; 
     int b[] = new int[n]; 
     int count=0; 
     int i,j,sum = 0; 
     for(i=0;i<n;i++) 
      { 
      a[i] = scan.nextInt();    
     } 
     for(i=0;i<n;i++) 
      { 
     if(a[i]<0){count++;} 
     } 
     for(i=0;i<n;i++) 
      { 
      for(j=0;j<n;j++) 
       { 
      sum = a[i] + sum; 
      b[j] = sum; 
      } 
     } 
     for(j=0;j<n;j++) 
       { 
     if(b[j]<0){count++;} 
     } 
     System.out.println(count); 

    } 
} 

どこが間違っていますか?

+0

b []はどのような配列ですか? – Gaur93

+1

デバッガを試しましたか? –

+0

もし私が要件を正しく理解していれば、私は依然として与えられた入力に対して9つの組み合わせを見つけることができず、6つしか見つからなかった。 (1、-2);(4、-5);( - 5,1); (-2,4、-5);( - 2,4、-5,1);(1、-2,4、-5,1)である。 何か不足していますか? – drgPP

答えて

0

このロジックはほとんど変更されていません。このコードは正常に動作します。

import java.util.*; 
public class Solution { 

     public static void main(String[] args) { 
      Scanner scan = new Scanner(System.in); 
      int n = scan.nextInt(); 
      int a[] = new int[n]; 
      int count=0; 
      int i,j,sum = 0; 
      for(i=0;i<n;i++) 
      { 
       a[i] = scan.nextInt(); 
      } 
      scan.close(); 
      for(i=0;i<n;i++) 
      { 
       sum = 0; 
       for(j=i;j<n;j++) 
       { 
        sum = a[j] + sum; 
        if(sum<0){ 
         count++; 
        } 
       } 
      } 
      System.out.println(count); 
     } 
    } 
関連する問題