由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 发个湾区P公司的第一轮phone interview
相关主题
Palantir的第一轮电面LC装水容器题一定要O(nlogn)做法吗?
Palantir Internship 面经问一道G家面试题
A家杯具,面经DP感受 (高手请绕行)
google的一道题求解dynamical programming
这个histgram的最大面积问题请教一道leetcode的新题
有用java过Maximal Rectangle的judge large的吗?jump game II原来可以这样做
Largest Rectangle in Histogram不同算法的复杂度请教一个算法
Maximal Rectangle TLE是指代码正确,但不是最优吗?各位大牛,这题写代码的话你们要多久
相关话题的讨论汇总
话题: int话题: tmp话题: maxarea话题: return话题: out
进入JobHunting版参与讨论
1 (共1页)
R***i
发帖数: 78
1
说他们问题变态不是盖的,第一轮就两道
1. N node的binary tree一共能有几种不同的tree structure,写code,数学公式
2. 给int[] in, 生成int[] out, out[i]= product of every element of in except
in[i],不能用除号, O(n) time required
虽然都是常见题,但我都没见过。两道题都在提示下摸爬滚打的弄出来了。
P号称面试难度比G,F还大。随便查了查,SE基本都是stanford毕业的。面我的
人也算大牛,在stackoverflow上all time reputation排名前50的,也只是普通SE。我这种小
虾米就算能过这轮后面肯定也要挂。
r*******e
发帖数: 7583
2
P?猜不出来

except
我这种小

【在 R***i 的大作中提到】
: 说他们问题变态不是盖的,第一轮就两道
: 1. N node的binary tree一共能有几种不同的tree structure,写code,数学公式
: 2. 给int[] in, 生成int[] out, out[i]= product of every element of in except
: in[i],不能用除号, O(n) time required
: 虽然都是常见题,但我都没见过。两道题都在提示下摸爬滚打的弄出来了。
: P号称面试难度比G,F还大。随便查了查,SE基本都是stanford毕业的。面我的
: 人也算大牛,在stackoverflow上all time reputation排名前50的,也只是普通SE。我这种小
: 虾米就算能过这轮后面肯定也要挂。

i**9
发帖数: 351
3
第二题不很变态,常规题
g**e
发帖数: 6127
4
1. f(n) = sum(f(i) + f(n-1-i)) i=0..n-1 DP做吧
第二题也用dp就行了保存P[0, i]和P[i, n]的值
out[i] = P[0, i-1] x P[i+1, n]
没见过这两题,不知道对不对

except
我这种小

【在 R***i 的大作中提到】
: 说他们问题变态不是盖的,第一轮就两道
: 1. N node的binary tree一共能有几种不同的tree structure,写code,数学公式
: 2. 给int[] in, 生成int[] out, out[i]= product of every element of in except
: in[i],不能用除号, O(n) time required
: 虽然都是常见题,但我都没见过。两道题都在提示下摸爬滚打的弄出来了。
: P号称面试难度比G,F还大。随便查了查,SE基本都是stanford毕业的。面我的
: 人也算大牛,在stackoverflow上all time reputation排名前50的,也只是普通SE。我这种小
: 虾米就算能过这轮后面肯定也要挂。

r*******e
发帖数: 7583
5
第二题就是pre-processing生成两个partial product array
不符合最优子结构的性质,应该不能叫DP

【在 g**e 的大作中提到】
: 1. f(n) = sum(f(i) + f(n-1-i)) i=0..n-1 DP做吧
: 第二题也用dp就行了保存P[0, i]和P[i, n]的值
: out[i] = P[0, i-1] x P[i+1, n]
: 没见过这两题,不知道对不对
:
: except
: 我这种小

k*****7
发帖数: 72
6
同问哪里是P?
t****n
发帖数: 324
7
Paypal?

【在 k*****7 的大作中提到】
: 同问哪里是P?
t*********e
发帖数: 1136
c********0
发帖数: 112
9
第一个题貌似是那个Catalan number
第二题两个指针扫一遍就行了
具体参考1337code
r***u
发帖数: 241
10
Palantir很富啊

【在 t*********e 的大作中提到】
: This one?
: http://www.palantir.com/

相关主题
有用java过Maximal Rectangle的judge large的吗?LC装水容器题一定要O(nlogn)做法吗?
Largest Rectangle in Histogram不同算法的复杂度问一道G家面试题
Maximal Rectangle TLE是指代码正确,但不是最优吗?DP感受 (高手请绕行)
进入JobHunting版参与讨论
s*i
发帖数: 388
11
五角大楼都用他家软件,牛x了

【在 r***u 的大作中提到】
: Palantir很富啊
g*****i
发帖数: 19
12
第1题: N!种不同Trees, 因为从第一个其添加节点时,可选的位子数分别1, 2, 。
。。N。

except
我这种小

【在 R***i 的大作中提到】
: 说他们问题变态不是盖的,第一轮就两道
: 1. N node的binary tree一共能有几种不同的tree structure,写code,数学公式
: 2. 给int[] in, 生成int[] out, out[i]= product of every element of in except
: in[i],不能用除号, O(n) time required
: 虽然都是常见题,但我都没见过。两道题都在提示下摸爬滚打的弄出来了。
: P号称面试难度比G,F还大。随便查了查,SE基本都是stanford毕业的。面我的
: 人也算大牛,在stackoverflow上all time reputation排名前50的,也只是普通SE。我这种小
: 虾米就算能过这轮后面肯定也要挂。

f*****w
发帖数: 2602
13
第二题没看懂
R***i
发帖数: 78
14
不是n!, 我开始以为也是,被面试的人指出错了。还是要用DP做。

【在 g*****i 的大作中提到】
: 第1题: N!种不同Trees, 因为从第一个其添加节点时,可选的位子数分别1, 2, 。
: 。。N。
:
: except
: 我这种小

R***i
发帖数: 78
15
1. close, but not quite
2. wrong

【在 g**e 的大作中提到】
: 1. f(n) = sum(f(i) + f(n-1-i)) i=0..n-1 DP做吧
: 第二题也用dp就行了保存P[0, i]和P[i, n]的值
: out[i] = P[0, i-1] x P[i+1, n]
: 没见过这两题,不知道对不对
:
: except
: 我这种小

g*********s
发帖数: 1782
16
不能用除号,自己实现个除法行不?

【在 R***i 的大作中提到】
: 1. close, but not quite
: 2. wrong

g**e
发帖数: 6127
17
指点一下哪错了,至少我运行了几个例子倒没错
/**
* c[i] = A[0]*A[1]*..*A[i]
* d[i] = A[n]*A[n-1]*..*A[i]
*
* and c[0] = a[0], d[n]=a[n];
*
* then B[i] = c[i-1] * d[i+1]
*
* @return b
*/
public static final int[] multiply(int[] a) {
if (a.length==1)
return a;

int n = a.length-1;
int[] b = new int[n+1];
int[] c = new int[n+1];
int[] d = new int[n+1];

c[0] = a[0];
d[n] = a[n];

for (int i=1;i<=n;i++) {
c[i] = c[i-1] * a[i];
d[n-i] = d[n-i+1] * a[n-i];
}

b[0] = d[1];
b[n] = c[n-1];
for (int i=1; i<=n-1; i++) {
b[i] = c[i-1] * d[i+1];
}
return b;
}

【在 R***i 的大作中提到】
: 1. close, but not quite
: 2. wrong

g***s
发帖数: 3811
18
没错。 直方图也可以用类似的方法来做,比用栈要清楚一些。

指点一下哪错了,至少我运行了几个例子倒没错/** * c[i] = A[0]*A[1]*..*A[i]
★ Sent from iPhone App: iReader Mitbbs 6.8 - iPhone Lite

【在 g**e 的大作中提到】
: 指点一下哪错了,至少我运行了几个例子倒没错
: /**
: * c[i] = A[0]*A[1]*..*A[i]
: * d[i] = A[n]*A[n-1]*..*A[i]
: *
: * and c[0] = a[0], d[n]=a[n];
: *
: * then B[i] = c[i-1] * d[i+1]
: *
: * @return b

g**e
发帖数: 6127
19
1题typo,应该是
f(n) = sum( f(i) * f(n-1-i) ) i=0..n-1
结果跟catalam number一样
public static final int binaryTreeNum (int n) {
if (n<0) return 0;
if (n==0 || n==1) return 1;

int[] f = new int[n+1];
f[0] = 1;
f[1] = 1;
for (int i=2; i<=n; i++) {
for (int j=0; j f[i] += f[j] * f[i-j-1];
}
}

return f[n];
}

【在 R***i 的大作中提到】
: 1. close, but not quite
: 2. wrong

g**e
发帖数: 6127
20
用栈的方法我看了很久以后才自己写对了一个,太绕了

【在 g***s 的大作中提到】
: 没错。 直方图也可以用类似的方法来做,比用栈要清楚一些。
:
: 指点一下哪错了,至少我运行了几个例子倒没错/** * c[i] = A[0]*A[1]*..*A[i]
: ★ Sent from iPhone App: iReader Mitbbs 6.8 - iPhone Lite

相关主题
dynamical programming请教一个算法
请教一道leetcode的新题各位大牛,这题写代码的话你们要多久
jump game II原来可以这样做自己总结了下什么时候用dp(循环),什么时候用递归
进入JobHunting版参与讨论
g*********s
发帖数: 1782
21
那个怎么做?

【在 g***s 的大作中提到】
: 没错。 直方图也可以用类似的方法来做,比用栈要清楚一些。
:
: 指点一下哪错了,至少我运行了几个例子倒没错/** * c[i] = A[0]*A[1]*..*A[i]
: ★ Sent from iPhone App: iReader Mitbbs 6.8 - iPhone Lite

R***i
发帖数: 78
22
这个是对的

【在 g**e 的大作中提到】
: 1题typo,应该是
: f(n) = sum( f(i) * f(n-1-i) ) i=0..n-1
: 结果跟catalam number一样
: public static final int binaryTreeNum (int n) {
: if (n<0) return 0;
: if (n==0 || n==1) return 1;
:
: int[] f = new int[n+1];
: f[0] = 1;
: f[1] = 1;

g***s
发帖数: 3811
23
http://www.mitbbs.com/article_t1/JobHunting/31816659_0_2.html
32楼

【在 g*********s 的大作中提到】
: 那个怎么做?
g**e
发帖数: 6127
24
这个比用stack简洁多了,学习了

【在 g***s 的大作中提到】
: http://www.mitbbs.com/article_t1/JobHunting/31816659_0_2.html
: 32楼

B*M
发帖数: 1340
25
你们咋都这么聪明呢!
我老嫉妒死了都,
你们都看了什么书才看到这样的?

【在 g**e 的大作中提到】
: 指点一下哪错了,至少我运行了几个例子倒没错
: /**
: * c[i] = A[0]*A[1]*..*A[i]
: * d[i] = A[n]*A[n-1]*..*A[i]
: *
: * and c[0] = a[0], d[n]=a[n];
: *
: * then B[i] = c[i-1] * d[i+1]
: *
: * @return b

g***s
发帖数: 3811
26
原来你以前也没仔细看啊。 :)

【在 g**e 的大作中提到】
: 这个比用stack简洁多了,学习了
g*****i
发帖数: 19
27
problem 1 should be changed to that how many tree stuctures of full binary
tree with N node. is correct?

except
我这种小

【在 R***i 的大作中提到】
: 说他们问题变态不是盖的,第一轮就两道
: 1. N node的binary tree一共能有几种不同的tree structure,写code,数学公式
: 2. 给int[] in, 生成int[] out, out[i]= product of every element of in except
: in[i],不能用除号, O(n) time required
: 虽然都是常见题,但我都没见过。两道题都在提示下摸爬滚打的弄出来了。
: P号称面试难度比G,F还大。随便查了查,SE基本都是stanford毕业的。面我的
: 人也算大牛,在stackoverflow上all time reputation排名前50的,也只是普通SE。我这种小
: 虾米就算能过这轮后面肯定也要挂。

k*****7
发帖数: 72
28
我面过这家,两轮挂掉。。。
第二题pre-processing,用空间换时间。
第一题f(n) = sum( f(i) * f(n-1-i) )怎么构造的?试了试确实正确。求大虾解释下
g*****i
发帖数: 19
29
比较好的第推公式是:f(n) =(2*(2n-1)/(n+1))*f(n-1)
f(0) = 1;

【在 g**e 的大作中提到】
: 1. f(n) = sum(f(i) + f(n-1-i)) i=0..n-1 DP做吧
: 第二题也用dp就行了保存P[0, i]和P[i, n]的值
: out[i] = P[0, i-1] x P[i+1, n]
: 没见过这两题,不知道对不对
:
: except
: 我这种小

g**e
发帖数: 6127
30
选一个当root,剩下n-1个点组成左子树或者右子树,或者两边都有,如果左子树有i个
节点,那么右子树就剩n-1-i个,所以结果应该是
f(n) = sum( f(i) * f(n-i-1) ) for i=0..n-1
另外有人也提到了,n个点的binary tree的个数是 catalan number
http://en.wikipedia.org/wiki/Catalan_number

【在 k*****7 的大作中提到】
: 我面过这家,两轮挂掉。。。
: 第二题pre-processing,用空间换时间。
: 第一题f(n) = sum( f(i) * f(n-1-i) )怎么构造的?试了试确实正确。求大虾解释下
: 吧

相关主题
动态规划一定要有Optimal Substructure吗?Palantir Internship 面经
面试题讨论:最多假期的问题A家杯具,面经
Palantir的第一轮电面google的一道题求解
进入JobHunting版参与讨论
i***e
发帖数: 452
31
1 求all b(x), b(x)=在x右边第一比ax小的位置 [b(x)=n+1 if all are larger than
ax] O(n) using DP.
这个如何写递归保证O(n) ?

【在 g***s 的大作中提到】
: http://www.mitbbs.com/article_t1/JobHunting/31816659_0_2.html
: 32楼

i***e
发帖数: 452
32

这个不对吧。 a[i] < a[i+1] 同时 a[i] 可能小于b[i+1]了 。

【在 g**e 的大作中提到】
: 选一个当root,剩下n-1个点组成左子树或者右子树,或者两边都有,如果左子树有i个
: 节点,那么右子树就剩n-1-i个,所以结果应该是
: f(n) = sum( f(i) * f(n-i-1) ) for i=0..n-1
: 另外有人也提到了,n个点的binary tree的个数是 catalan number
: http://en.wikipedia.org/wiki/Catalan_number

i***e
发帖数: 452
33
而且那个帖子说的是应该存位置, 存值没有什么用了..
i***e
发帖数: 452
34
我知道你的意思, 你的算法是先算b[i+1] 然后算b[i] 对吧? 如果a[i] > a[i+1],
那么b[i] = i+1, 这个没错了, 但是如果a[i] < a[i+1]的话, 我们不能直接得出b[i
] = b[i+1]; 因为b[i+1]那个位置的数只是比a[i+1]小, 而这个数可能比a[i]要大,
这样的话我们算b[i]的时候就跟b[i+1]的值没有任何很直接的关系了 , 不知道你的算
法是不是这样的? 请指出如果我错了的话
g**e
发帖数: 6127
35
你说的对,我开始想的太简单了,脑袋不清楚。
不过DP还是可以做的。 下面虽然有两重循环,但是数组a最多只会被访问两次,所以依
然是O(n)。
等grass和其它大牛来指正
int[] a = {0, 2, 4, 6, 9, 7, 5, 3, 1};
//int[] a = {1, 3, 5, 4, 1};
int n = a.length;
int[] b = new int[n];
b[n-1] = n;
for (int i=n-2; i>=0; i--) {
if (a[i]>a[i+1])
b[i] = i+1;
else {
int tmp = i+1;
while (b[tmp]= a[i])
tmp = b[tmp];
if(tmp==n)
b[i] = n;
else
b[i] = b[tmp];
}
}

[i


【在 i***e 的大作中提到】
: 我知道你的意思, 你的算法是先算b[i+1] 然后算b[i] 对吧? 如果a[i] > a[i+1],
: 那么b[i] = i+1, 这个没错了, 但是如果a[i] < a[i+1]的话, 我们不能直接得出b[i
: ] = b[i+1]; 因为b[i+1]那个位置的数只是比a[i+1]小, 而这个数可能比a[i]要大,
: 这样的话我们算b[i]的时候就跟b[i+1]的值没有任何很直接的关系了 , 不知道你的算
: 法是不是这样的? 请指出如果我错了的话

o****d
发帖数: 2835
36
哈哈 前几天刚写过第2题
先从左到右一遍 再从右到左一遍
大致就是
out[0]=1;
out[1]=in[0];
out[2]=out[1]*in[1]=in[0]*in[1];
out[3]=out[2]*in[2]=in[0]*in[1]*in[2];
...
out[n-1]=out[n-2]*in[n-2]=in[0]*in[1]*in[2]*...*in[n-2];
然后反过来把后半段再乘上就是 (后半段可以用一个temp变量来存,所以也只是O(1)空间)
out[n-1]=out[n-1]*1;
out[n-2]=out[n-1]*(in[n-1]);
out[n-3]=out[n-2]*(in[n-1]*in[n-2]);
out[n-4]=out[n-3]*(in[n-1]*in[n-2]*in[n-3]);
...

except
我这种小

【在 R***i 的大作中提到】
: 说他们问题变态不是盖的,第一轮就两道
: 1. N node的binary tree一共能有几种不同的tree structure,写code,数学公式
: 2. 给int[] in, 生成int[] out, out[i]= product of every element of in except
: in[i],不能用除号, O(n) time required
: 虽然都是常见题,但我都没见过。两道题都在提示下摸爬滚打的弄出来了。
: P号称面试难度比G,F还大。随便查了查,SE基本都是stanford毕业的。面我的
: 人也算大牛,在stackoverflow上all time reputation排名前50的,也只是普通SE。我这种小
: 虾米就算能过这轮后面肯定也要挂。

i***e
发帖数: 452
37

感觉你这个是O(n2)的了, 一个简单的例子就是从中位数的之后的元素都是降序的,
这样你的那个while loop 只能每次走一步了, 所以每次循环就是linear time 了,
前面的元素如何有n/4个元素进入你这个loop 的话就是O(n2)的time了

【在 g**e 的大作中提到】
: 你说的对,我开始想的太简单了,脑袋不清楚。
: 不过DP还是可以做的。 下面虽然有两重循环,但是数组a最多只会被访问两次,所以依
: 然是O(n)。
: 等grass和其它大牛来指正
: int[] a = {0, 2, 4, 6, 9, 7, 5, 3, 1};
: //int[] a = {1, 3, 5, 4, 1};
: int n = a.length;
: int[] b = new int[n];
: b[n-1] = n;
: for (int i=n-2; i>=0; i--) {

g**e
发帖数: 6127
38
我已经给了个例子了,while loop最坏的情况只有第一次进入的时候每次走一步,以后
再进
while的时候,就不可能每次走一步了,因为上一个数对应的index已经跳跃了

以依


【在 i***e 的大作中提到】
:
: 感觉你这个是O(n2)的了, 一个简单的例子就是从中位数的之后的元素都是降序的,
: 这样你的那个while loop 只能每次走一步了, 所以每次循环就是linear time 了,
: 前面的元素如何有n/4个元素进入你这个loop 的话就是O(n2)的time了

g***s
发帖数: 3811
39
这是对的。很经典的一个DP问题。
很多人一看2重循环就以为是N*N. 其实不是。这题计算很简单,最大2×N。

【在 g**e 的大作中提到】
: 你说的对,我开始想的太简单了,脑袋不清楚。
: 不过DP还是可以做的。 下面虽然有两重循环,但是数组a最多只会被访问两次,所以依
: 然是O(n)。
: 等grass和其它大牛来指正
: int[] a = {0, 2, 4, 6, 9, 7, 5, 3, 1};
: //int[] a = {1, 3, 5, 4, 1};
: int n = a.length;
: int[] b = new int[n];
: b[n-1] = n;
: for (int i=n-2; i>=0; i--) {

g**e
发帖数: 6127
40
激动啊,得到大牛肯定
不过你前面提到的"c(x)=在x左边最后一个比ax小的位置 c(x)=0 if all are larger
than ax",我觉得这种情况c(x)=-1
这样后面算最大面积的时候 (b(x)-c(x)-1)*a(x)才正确
比如a={2,3}, b={2,2}, c={-1,0} 最大面积4
贴个完整的代码
public class LargestHistogramRectangleDP {
public static int largestHistogram(int[] a) {
int maxArea = 0;

int n = a.length;
int[] b = new int[n];
int[] c = new int[n];

b[n-1] = n;
for (int i=n-2; i>=0; i--) {
if (a[i]>a[i+1])
b[i] = i+1;
else {
int tmp = i+1;
//keep checking b[i] until find some t such
that a[t] //although there are two loops, each element
in array a will
//be accessed at most two times.
while (b[tmp]= a[i]) {
tmp = b[tmp];

}
b[i] = tmp==n ? n : b[tmp];
}
}

for (int i : b) {
System.out.print(i+" ");
}
System.out.println();

c[0] = -1;
for (int i=1; i if (a[i]>a[i-1])
c[i] = i-1;
else {
int tmp = i-1;
//keep checking c[i] until find some t such
that a[t] while (c[tmp]>=0 && a[c[tmp]]>=a[i])
tmp = c[tmp];
c[i] = tmp==-1 ? -1 : c[tmp];

}
}

for (int i : c) {
System.out.print(i+" ");
}
System.out.println();

int s = 0, e = 0;
for (int i=0; i int tmp = (b[i] - c[i] -1) * a[i];
if (tmp>maxArea) {
maxArea = tmp;
s = c[i] + 1;
e = b[i] - 1;
}
}
System.out.println("max histogram rectangle area is " +
maxArea + ", index starts at " + s + " and ends at " +e);

return maxArea;
}

public static void main(String[] args) {
//int[] a = {1, 3, 5, 4, 1};
int[] a = {0, 2, 4, 6, 9, 7, 5, 3, 1};
//int[] a = {4, 4, 10, 5, 7, 8, -1};
//int [] a = {7, 11, 10, 5, 5,1};

largestHistogram(a);

}
}

【在 g***s 的大作中提到】
: 这是对的。很经典的一个DP问题。
: 很多人一看2重循环就以为是N*N. 其实不是。这题计算很简单,最大2×N。

相关主题
google的一道题求解Largest Rectangle in Histogram不同算法的复杂度
这个histgram的最大面积问题Maximal Rectangle TLE是指代码正确,但不是最优吗?
有用java过Maximal Rectangle的judge large的吗?LC装水容器题一定要O(nlogn)做法吗?
进入JobHunting版参与讨论
g***s
发帖数: 3811
41
我那给点是基于下标1..n
所以才有
[b(x)=n+1 if all are larger than ax]

[c(x)=0 if all are larger than ax]
具体实现要用下标0..n-1的话,要做改动。
最近你练得很勤快啊。祝好运!

【在 g**e 的大作中提到】
: 激动啊,得到大牛肯定
: 不过你前面提到的"c(x)=在x左边最后一个比ax小的位置 c(x)=0 if all are larger
: than ax",我觉得这种情况c(x)=-1
: 这样后面算最大面积的时候 (b(x)-c(x)-1)*a(x)才正确
: 比如a={2,3}, b={2,2}, c={-1,0} 最大面积4
: 贴个完整的代码
: public class LargestHistogramRectangleDP {
: public static int largestHistogram(int[] a) {
: int maxArea = 0;
:

k*****7
发帖数: 72
42
明白了!多谢前辈!

【在 g**e 的大作中提到】
: 选一个当root,剩下n-1个点组成左子树或者右子树,或者两边都有,如果左子树有i个
: 节点,那么右子树就剩n-1-i个,所以结果应该是
: f(n) = sum( f(i) * f(n-i-1) ) for i=0..n-1
: 另外有人也提到了,n个点的binary tree的个数是 catalan number
: http://en.wikipedia.org/wiki/Catalan_number

m**q
发帖数: 189
43
刚刚看了1337code上的解答,挺精巧的,没看之前
只想到了从头和尾各扫描一遍。
1337code上的链接
http://www.ihas1337code.com/2010/04/multiplication-of-numbers.h

【在 c********0 的大作中提到】
: 第一个题貌似是那个Catalan number
: 第二题两个指针扫一遍就行了
: 具体参考1337code

p*****u
发帖数: 310
44
请问这个2N怎么来的?如 2 3 4 1 0,至少a[3]这个元素就被access了3次。

【在 g***s 的大作中提到】
: 这是对的。很经典的一个DP问题。
: 很多人一看2重循环就以为是N*N. 其实不是。这题计算很简单,最大2×N。

b*******8
发帖数: 37364
45
第一个Catalan树,手头推导结果有两种方法。一种先搞递归式,再用组合数学的生成函数,很难记住临时写出。第二种是转换为等价的()配对计数问题,所有组合数减去不合法的配对,数据结构书上有,也很复杂,但是可以记住。
如果是写程序算,用第一种递归比较好。
1 (共1页)
进入JobHunting版参与讨论
相关主题
各位大牛,这题写代码的话你们要多久这个histgram的最大面积问题
自己总结了下什么时候用dp(循环),什么时候用递归有用java过Maximal Rectangle的judge large的吗?
动态规划一定要有Optimal Substructure吗?Largest Rectangle in Histogram不同算法的复杂度
面试题讨论:最多假期的问题Maximal Rectangle TLE是指代码正确,但不是最优吗?
Palantir的第一轮电面LC装水容器题一定要O(nlogn)做法吗?
Palantir Internship 面经问一道G家面试题
A家杯具,面经DP感受 (高手请绕行)
google的一道题求解dynamical programming
相关话题的讨论汇总
话题: int话题: tmp话题: maxarea话题: return话题: out