由买买提看人间百态

topics

全部话题 - 话题: aleft
(共0页)
s****j
发帖数: 67
1
int a[maxn],b[maxn];
int find(int aleft,int aright,int bleft,int bright,int k) {
if ((aright-aleft+1)+(bright-bleft+1) cout<<"error"< return 0;
}
if (aleft>aright)
return b[bleft+k-1];
if (bleft>bright)
return a[aleft+k-1];
int amid=(aleft+aright)>>1;
int bmid=(bleft+bright)>>1;
if (a[amid]<=b[bmid])
if (k<=(amid-aleft)+(bmid-bleft)+1)
return find(aleft,aright,bleft,bmid-1,k);
else
retu... 阅读全帖
t******r
发帖数: 209
2
来自主题: JobHunting版 - 问一道面世题
we'd better to do the left sides of A and B through a loop, instead of using
the formula directly, to avoid overflow. The loop for A's left side is
int aLeft = 0;
for (int i = 0; i < arr.length; ++i) {aLeft += i + 1 - arr[i];}
我的理解就是每次循环求一个差直(比较小),这样就不会溢出了
s*******f
发帖数: 1114
3
来自主题: JobHunting版 - 问道amazon 面试题
python:
def SameBST(a, b):
if len(a) < 1:
return len(b) < 1;
if len(a) != len(b) or a[0] != b[0]:
return False
aleft = [x for x in a if x < a[0]]
aright = [x for x in a if x > a[0]]
bleft = [x for x in b if x < b[0]]
bright = [x for x in b if x > b[0]]
return SameBST(aleft, bleft) and SameBST(aright, bright)
if __name__ == "__main__":
a = [10, 5, 20, 15, 30]
b = [10, 20, 15, 30, 5]
b1 = SameBST(a, b)
c = [10, 5, 20, 15, 30]
d = ... 阅读全帖
(共0页)