你不是说给了坐标点和value?
他非说无穷,你就想,已经给了的坐标点怎么弄成无穷?
所以就记个当前最大值吧。maxRow, maxCol, 总能看成当前的极限吧。要是以后再新给
,咱在扩展就行了吧。
比如说
public void update(int row, int col, int val) {
if (maxRow == 0 || maxCol == 0) return;
hash_val=hash_func(row,col);
int delta = val - nums_hashtable[hash_val];
nums_hashtable[hash_val] = val;
for (int i = row + 1; i <= maxRow; i += i & (-i)) {
for (int j = col + 1; j <=maxCol; j += j & (-j)) {
ij_hash_val=hash_func(i,j);
tree_hashtable[ij_hash_val] += delta;
}
}
}
hash_func太复杂不写了。反正方法有很多种。