我在其中一个carreer网站上练习自动判断算法,我有以下问题 在其中一个难题中,问题是要找到2个排序数组的中位数,并且要实现的方法的签名是:
public double findMedianSortedArrays(int A[], int B[])
我写了代码,有些测试失败了 虽然报告的失败情况如下,但结果如下:
Input Output Expected
[], [1] 1.0 1
[2], [] 2.0 2
我的基本面似乎生疏了。
我的问题:如果方法返回一个1
或2
并拒绝1.0
,它怎么能指望
double
?
我关于合并计算的代码片段是:
if(array.length %2 == 0){
return (array[middle] + array[middle - 1])/(double)2;
}
else{
return (double)array[middle];
}
答案 0 :(得分:2)
这是法官的错误。如果我转到the site,请选择“Java”并填写以下Java实现(只需填写一行return 0;
:
public class Solution {
public double findMedianSortedArrays(int A[], int B[]) {
// Start typing your Java solution below
// DO NOT write main() function
return 0;
}
}
报告指出output: 0.0
适用于所有情况。
C ++等价物似乎没有遭遇同样的问题。如果我填写这个:
class Solution {
public:
double findMedianSortedArrays(int A[], int m, int B[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
return 0;
}
};
然后报告针对所有情况说明output: 0
。