我的代码的哪一部分没有通过Hackerrank的Simple Array Sum测试?

时间:2017-05-19 04:19:59

标签: java arrays

我正在做Hackerrank的问题,以便更好地解决难题。我已经在数据结构部分中处理了简单求和数组问题近2小时O_O

我认真地认为我解决了它,因为我在Mac上的终端上测试了它并且运行正常但是当我在Hackerrank中提交代码时,它失败了所有3个测试用例T_T

我不明白问题出在哪里以及测试用例失败的原因。有谁看到这个问题?请帮忙。

以下是代码:

import java.io.*;
import java.util.*;

public class Solution {

    public static int sumArray( int[] arr ){ //arr stands for the array to pass in
        int result = 0;
        for (int i = 0; i < arr.length; i++){
            result = result + arr[i];
        }

        return result;

    }

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner input = new Scanner(System.in);
        System.out.println("Print out the size of the array: ");
        int size = input.nextInt();
        int[] array = new int[size];

        System.out.println("Type out the numbers you want in the array. One line only, each number is separated by a space");

        String numbers = null;

        String[] splitString = null;
        while ( input.hasNextLine() ){
          numbers = input.nextLine();
          splitString = numbers.split("\\s");

          if (splitString.length == size){
            break;
          }

        }
        //splitString = numbers.split("\\s");
        int i = 0;
        for (String s : splitString){
          //System.out.println(s);
          array[i] = Integer.parseInt(s);
          i++;
        }

        System.out.println( sumArray(array) );

    }
}

此外,这里是Hackerrank的问题,以澄清他们想要的东西:

给定一个整数数组,你能找到它的元素之和吗?

输入格式:

第一行包含一个整数,表示数组的大小。 第二行包含空格分隔的整数,表示数组的元素。

输出格式:

将数组元素的总和打印为单个整数。

示例输入:

6

1 2 3 4 10 11

示例输出:

31

1 个答案:

答案 0 :(得分:-2)

从第一次看到您的代码时,您有两个问题:

1- arr.length should be arr.length - 1

因为,你的迭代从0开始,而长度不是

2- the way you print your array is wrong

因为,你应该使用这样的东西:

Arrays.toString(array)