主要學了前綴和(prefix sum)的用法,還有自己創建class保存數據結構的方法
prefix sum
用在求subarray sum時候,前m個數的和A,前n個數的和是B,n-m的和就是B-A
class存數據結構
做題的時候要保存前綴和前綴和,除了用hashmap,也可以用一個自己建的class來表示
class Pair {
int sum;
int index;
public Pair(int s, int i) {
sum = s;
index = i;
}
}
自創class的排序
Arrays.sort(sums, new Comparator<Pair>() {
public int compare(Pair a, Pair b) {
return a.sum - b.sum;
}
});
Integer.MAX_VALUE的用法
用一個全局變量記錄最小值
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];
}
}