【发布时间】:2019-06-30 19:20:07
【问题描述】:
我正在尝试编写代码以克服 codility 带来的挑战之一,但返回的值是错误的。请帮助我理解它。 给定一个整数数组,目标是在给定索引处将其拆分为 2 个较小的数组,对每个数组求和并找到 2 个数组之间可能的最小绝对差。
例子:
我有一个数组 A[] = {3, 1, 2, 4, 3}。
如果我在索引 1 处拆分,左数组是 {3},右数组是 {1,2,4,3}。绝对差是|(3) - (1 + 2 + 4 + 3)| = 7。
最小可能的拆分是索引为 3,其中左数组为 {3, 1, 2},右数组为 {4, 3},绝对差为 |(3 + 1 + 2) - (4 + 3 )| = 1。
这是我的代码:
import java.lang.*;
class Solution {
public int solution(int[] A) {
// write your code in Java SE 8
int difference = 0;
int leftSum = 0;
int rightSum = 0;
int minValue = 0;
for (int i = 1; i < A.length; i++) {
int c = i - 1;
while(c >= 0) {
leftSum = A[c] + leftSum;
c--;
}
int a = i;
while(a < A.length) {
rightSum = A[a] + rightSum;
a++;
}
difference = Math.abs(leftSum - rightSum);
int temp = difference;
minValue = temp;
if (difference < minValue) {
minValue = difference;
}
}
return minValue;
}
}
【问题讨论】:
-
能否指定编码问题,同时给出问题的测试用例?
-
@VishwasAtrey 已编辑