Codility: TapeEquilibrium
O(N)で解くことができる.
indexを基準に、前後に分けて計算する問題です.
既存の配列から対応するインデックスへの累積を求めた.
累積によりindexを基準として前後に計算する.
class Solution {
public int solution(int[] A) {
for(int index = 1; index < A.length; index++) {
A[index] += A[index - 1];
}
int min = Integer.MAX_VALUE;
for(int index = 1; index < A.length; index++) {
int front = A[index - 1];
int end = A[A.length - 1] - A[index - 1];
int temp = Math.abs(front - end);
if(min > temp) {
min = temp;
}
}
return min;
}
}
Reference
この問題について(Codility: TapeEquilibrium), 我々は、より多くの情報をここで見つけました https://velog.io/@wonhee010/Codility-TapeEquilibriumテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol