 |
|
bibitiger
V2EX member #465441, joined on 2020-01-16 16:03:39 +08:00
|
bibitiger's recent replies
电商是造商场,IM 是造路
商场可以独立盈利
路不可以
那么你没有腾讯一样的其他服务的情况下,你造路干嘛?仅仅为了规避交警?
切片,多线程
比较换成位运算
当然你要是大多数都不是纯色的话,遍历应该最快
快搬吧,这情况时间长了精神得萎靡的不像样的,越拖可能搬家的精神都没了
题目本身不严谨,我觉得应该说明是最少调用次数。
如果是最少调用次数的话,那应该在 caller 的时候对 recur(n-1),recur(n-2),recur(n-3)也进行查表,这样就不会进入 recur()。
而要得出 f(n-1),必然会得到 f(n-2),f(n-3)...f(n-n), 所以 f(n)对于 f()的调用必然等于 n+1 。
int count_x = 0;
unordered_map<int,int> map_x;
int recur(int n) {
count_x++;
if (map_x.find(n) != map_x.end()) {
return map_x[n];
}
if (n < 3){
map_x[n] = 1;
return 1;
}
int temp_n1 = map_x.find(n-1) == map_x.end()?recur(n-1) :map_x[n-1];
int temp_n2 = map_x.find(n-2) == map_x.end()?recur(n-2) :map_x[n-2];
int temp_n3 = map_x.find(n-3) == map_x.end()?recur(n-3) :map_x[n-3];
map_x[n] = temp_n1*temp_n2*temp_n3;
return map_x[n];
}