Java对双重,整数和转换的基本原理的混淆

时间:2012-02-27 22:35:03

标签: java primitive primitive-types

我在其中一个carreer网站上练习自动判断算法,我有以下问题 在其中一个难题中,问题是要找到2个排序数组的中位数,并且要实现的方法的签名是:

public double findMedianSortedArrays(int A[], int B[])  

我写了代码,有些测试失败了 虽然报告的失败情况如下,但结果如下:

Input       Output  Expected    
[], [1]      1.0    1    
[2], []      2.0    2  

我的基本面似乎生疏了。

我的问题:如果方法返回一个12并拒绝1.0,它怎么能指望 double
我关于合并计算的代码片段是:

 if(array.length %2 == 0){

     return (array[middle] + array[middle - 1])/(double)2;    
 }
 else{
      return (double)array[middle];

  }

enter image description here

1 个答案:

答案 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