gpt4 book ai didi

java - Codility 中的 TapeEquilibrium 问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:38:34 27 4
gpt4 key购买 nike

我正在尝试编写代码以应对 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;
}
}

最佳答案

您可能需要提供有关该任务的更多信息,以便我们找出您的失误。但是,看看我看到的代码

minValue = 0;
difference = Math.abs(leftSum - rightSum);
int temp = difference;
minValue = temp;
if (difference < minValue) {
minValue = difference;
}

由此,difference永远等于minValue ; difference < minValue失败。

关于java - Codility 中的 TapeEquilibrium 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54560392/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com