Путаница в Java с основами о двойных и целых числах и преобразованиях - PullRequest
1 голос
/ 28 февраля 2012

Я практикуюсь в автоматическом судье по алгоритму на одном из участков карьеры, и у меня есть следующий вопрос.
В одной из головоломок вопрос состоит в том, чтобы найти медиану из 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];

  }

enter image description here

1 Ответ

2 голосов
/ 28 февраля 2012

Это ошибка в судье. Если я зайду на сайт , выберите «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 для всех случаев.

...