Redian新闻
>
Failed G 还是觉得不明白为什么
avatar
Failed G 还是觉得不明白为什么# JobHunting - 待字闺中
H*M
1
题目都做出来了嘛,交流也还好。
想了很久觉得可能是思路不够清晰流畅,然后就是有些小错误。我在G的朋友说应该是
缺少亮点 - 他们想看到1-2个高分。
转专业过来的,所以不晓得怎样才能拿高分?
绝望中。。。求内推。
avatar
H*M
2
只碰到了一个见过的题:2D array, 行递增,列递增,找一个数。我没想好是不是应该
告诉他我知道这题,就没说,装装地想了一会,就告诉他答案了。但是他也没让我写
code,然后直接问了下一题:两个sorted arrays, 找kth element, 我上来就说了
merge sort, 但他要更好效率的。
avatar
h*t
3
better than O(log(m+n))?

【在 H**M 的大作中提到】
: 只碰到了一个见过的题:2D array, 行递增,列递增,找一个数。我没想好是不是应该
: 告诉他我知道这题,就没说,装装地想了一会,就告诉他答案了。但是他也没让我写
: code,然后直接问了下一题:两个sorted arrays, 找kth element, 我上来就说了
: merge sort, 但他要更好效率的。

avatar
z*y
4
一看Merge sort 估计这一轮只能拿个一般的面试分数了
不是最优解
avatar
r*n
5
not a very efficient answer. You need to consider that if k is very small
comparing to m+n.

【在 H**M 的大作中提到】
: 只碰到了一个见过的题:2D array, 行递增,列递增,找一个数。我没想好是不是应该
: 告诉他我知道这题,就没说,装装地想了一会,就告诉他答案了。但是他也没让我写
: code,然后直接问了下一题:两个sorted arrays, 找kth element, 我上来就说了
: merge sort, 但他要更好效率的。

avatar
z*e
7
这题是有点小难,而且写起来很容易错
边界处理挺麻烦的

【在 z*******y 的大作中提到】
: 一看Merge sort 估计这一轮只能拿个一般的面试分数了
: 不是最优解

avatar
c*y
8
记得版上有人给出过2 sorted array求k-th的code,recursive的方法,是O(log(n+m)
),写的很好。哪位记得给找找?
avatar
z*e
9
给一个java的解法
第二个prvaite方法就是找第k个数
package test;
public class Test {
public double findMedianSortedArrays(int a[], int b[]) {
// Start typing your Java solution below
// DO NOT write main() function
return findMedian(a,0,a.length,b,0,b.length);
}

private double findMedian(int[] a, int a0, int m, int[] b, int b0, int
n){
if((m+n)%2==0)
return (findK(a, a0,m, b, b0,n, (m+n)/2)+findK(a,a0,m,b,b0,n,(m+
n)/2+1))/2;
else return findK(a, a0, m,b, b0, n,(m+n)/2+1);
}

private double findK(int[] a, int a0, int m, int[] b, int b0, int n,
int k){
System.out.println("a0:"+a0+",m:"+m+",b0:"+b0+",n:"+n+",k:"+k);
if(m<=0) return b[b0+k-1];
if(n<=0) return a[a0+k-1];
if(k<=1) return Math.min(a[a0], b[b0]);
if(a[a0+m/2]>=b[b0+n/2]){
if(m/2+n/2>=k-1) return findK(a,a0,m/2,b,b0,n,k);
else return findK(a,a0,m,b,b0+n/2+1,n-n/2-1,k-n/2-1);
}else{
if(m/2+n/2>=k-1) return findK(a,a0,m,b,b0,n/2,k);
else return findK(a,a0+m/2+1,m-m/2-1,b,b0,n,k-m/2-1);
}
}

public static void main(String[] args) {
int[] a = {2,4};
int[] b = {3};
Test test = new Test();
System.out.println(test.findMedianSortedArrays(a, b));
}
}
avatar
m*v
10
两个数组都是排过了的,第k个数不会出现在任何一组里的第k个元素之后。
avatar
h*a
11
如果第二道题你最终的solution就是O(k)的复杂度,那在G fail是很正常的。按常理面
试官应该给你hint让你最终走到binary search的方向上,从而把问题转化人一个
coding的问题。

【在 H**M 的大作中提到】
: 只碰到了一个见过的题:2D array, 行递增,列递增,找一个数。我没想好是不是应该
: 告诉他我知道这题,就没说,装装地想了一会,就告诉他答案了。但是他也没让我写
: code,然后直接问了下一题:两个sorted arrays, 找kth element, 我上来就说了
: merge sort, 但他要更好效率的。

avatar
H*M
12
我后来是用binary search,关于怎样缩小范围上答得不太顺,但还是被认可了。最终
时间不太够,就很快地写了code, 有些是sudo code, 没有到可以运行的程度。
Recruiter说那样就可以了。
avatar
H*M
13
sorry, should be "pseudo code".
avatar
h*a
14
这种事情不用纠结,Hiring Committee完全是一个黑箱。

【在 H**M 的大作中提到】
: 我后来是用binary search,关于怎样缩小范围上答得不太顺,但还是被认可了。最终
: 时间不太够,就很快地写了code, 有些是sudo code, 没有到可以运行的程度。
: Recruiter说那样就可以了。

avatar
i*h
15
时间一到都会这么说的

【在 H**M 的大作中提到】
: sorry, should be "pseudo code".
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。