問題
コード1
public int solution(int A[]) {
int diff = Integer.MAX_VALUE;
int N = A.length;
int left = 0;
for (int i = 0; i < N - 1; i++) {
left += A[i];
int right = 0;
for (int j = N - 1; j > i; j--) {
right += A[j];
}
diff = Math.min(diff, Math.abs(left - right));
}
return diff;
}
コード2
- コード1ではパフォーマンスが悪くTest scoreが100にならないので、以下で実施
public int solution(int A[]) {
int diff = Integer.MAX_VALUE;
int N = A.length;
int sum = 0;
for (int i = 0; i < N; i++) {
sum += A[i];
}
int left = 0;
int right = sum;
for (int i = 0; i < N - 1; i++) {
left += A[i];
right -= A[i];
diff = Math.min(diff, Math.abs(left - right));
}
return diff;
}
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。