8.4
1101 ワード
プレフィックスと(prefix sum)の使い方を学びました.自分でclassを作ってデータ構造を保存する方法もあります.
prefix sum
subarray sumを求める時に、前のm個の数の和A、前のn個の数の和はB、n-mの和はB-Aです.
class保存データ構造
問題をする時はプレフィックスとプレフィックスとを保存します.hashmapを使う以外に、自分で作ったクラスを使ってもいいです.
グローバル変数を使って最小値を記録します.
prefix sum
subarray sumを求める時に、前のm個の数の和A、前のn個の数の和はB、n-mの和はB-Aです.
class保存データ構造
問題をする時はプレフィックスとプレフィックスとを保存します.hashmapを使う以外に、自分で作ったクラスを使ってもいいです.
class Pair {
int sum;
int index;
public Pair(int s, int i) {
sum = s;
index = i;
}
}
オリジナルクラスのソート Arrays.sort(sums, new Comparator() {
public int compare(Pair a, Pair b) {
return a.sum - b.sum;
}
});
Integer.MAX_VALEの使い方グローバル変数を使って最小値を記録します.
int ans = Integer.MAX_VALUE;
int[] res = new int[2]
for (int i = 1; i <= len; i++) {
if (ans > sums[i].sum - sums[i-1].sum) {
ans = sums[i].sum - sums[i-1].sum;
int[] temp = new int[]{sums[i].index - 1, sums[i - 1].index - 1};
Arrays.sort(temp);
res[0] = temp[0] + 1;
res[1] = temp[1];
}
}
linkedlistのスローポインターの方法