如何改进我的编码测试解决方案?

时间:2015-06-10 08:04:38

标签: java

class Solution {


public int solution(int[] A) {
    long totalSum = 0;

    for(int i = 1; i< A.length; i++)
    {
        totalSum += A[i];  // same as sumright ok till now
    }
    long mindiff = 0;
    long tempdiff = 0;
    long part1 = 0, part2;
    part1 += A[0];
    part2 = totalSum ;
    mindiff = Math.abs(part1 - part2);
    /*System.out.println("part1 is"+part1);
    System.out.println("part2 is"+part2);       
    System.out.println(mindiff);
    */for(int i = 1; i< A.length; i++)
    {
        //System.out.println("loopindex is "+i);
        part1 += A[i];
        part2 -= A[i];
        tempdiff = Math.abs(part1 - part2);
        /*System.out.println("part1 is"+part1);
        System.out.println("part2 is"+part2);       
        System.out.println("tempdiff is"+ tempdiff);
        */
        if(tempdiff < mindiff)
        {
            mindiff = tempdiff;
        }
        //System.out.println(mindiff);
    }

    return (int)mindiff;

}
}

请查看此链接

https://codility.com/demo/results/demoD28TY3-RD4/

有没有办法,我们可以获得用于验证密码测试的测试输入?

我的错误答案是两个案例

- 小元素 - 两个要素

请告知。

1 个答案:

答案 0 :(得分:1)

问题是你在最后一个元素之后分裂,导致空的一半。

将您的第二次迭代更改为:

for(int i = 1; i< A.length - 1; i++)

不要忘记考虑如果A为空或长度为1会发生什么。

编辑很快就会出现一个固定版本:https://codility.com/demo/results/demoZFZ6ED-2CP/