Итак, я написал решение для упражнения MaxProfit ( ссылка на описание задачи ) из урока 9 , в коде для программистов . Я набрал 88% итогового результата (код внизу, но не стесняйтесь читать весь пост, где я подробно объясняю, о чем мой вопрос, я полагаю, что я не знаю, как правильно читать код страницы), но, возможно, такую информацию нельзя получить со стороны клиента, я не знаю).
Это 25-е упражнение, которое я решаю, все предыдущие были решены со 100% окончательным результатом. Я, конечно, и я все еще тащу это сомнение от многих недель назад о том, как увидеть фактическую работоспособность тестов (не только название теста и полученное / ожидаемое значение), потому что иногда это не показываетТаким образом, вам, скорее всего, нужно угадать, хотя это всегда дает вам представление о том, где вы можете потерпеть неудачу, в названии теста и какое значение получите из вашего кода, когда ожидается другой.
Когда выполучить подробную информацию о неудачном тесте, это вывод, довольно подробный вывод, который выдает вам страница.
Сводка анализа
обнаружены следующие проблемы: неправильные ответы. (это всегда отображается при наличии проблем)
[0, 2000] expected 2000 got 0
(Вы не всегда получаете подробную информацию о input , но вы всегда получите более подробную информацию о неудачных и успешных тестах внизу)
После этого вы всегда можете увидеть следующие подробности о тестах (дажеесли все в порядке), что полезно, но иногда недостаточно.
Следующий результат (часть) является результатом для моего кода в этом упражнении (вы можете увидеть страницу с полными результатами здесь)
Обнаруженная временная сложность: O (N)
▶ пример длины = 6✔OK
▶ simple_1 V-pattern> последовательность, длина = 7✔OK
▶ simple_desc длина нисходящей и восходящей последовательности = 5✔OK
▶ simple_empty пусто и [0,200000] последовательность✔OK
▶ two_hills две возрастающие подпоследовательности✘ НЕПРАВИЛЬНЫЙ ОТВЕТ
получено 3000 ожидаемых 99000-> 1.0.020 НЕПРАВИЛЬНЫЙ ОТВЕТ, получил3000 ожидается 99000
Как вы можете видеть в последнем тесте, я получил неправильный ответ. Но я не вижу подробностей о входных данных, и я не вижу, как он может не сработать в моем коде. В нем только сказано:
two_hills две увеличивающиеся подпоследовательности и получено 3000 ожидаемых 99000
Но этого недостаточно! Я протестировал [2,3,7,22, 1, 22, 51]
в качестве ввода, которое возвращает 50, а также [1, 22, 51, 2, 3, 7, 22]
, также возвращающее 50, и это две увеличивающиеся подпоследовательности, я прав? так что я не совсем понимаю. Но опять же, вопрос заключается в том, как определить, какие значения тестирует страница для two_hills
и вообще для всех других тестов (как я уже говорил ранее, иногда показывает ввод при неудачном тестировании, не всегда , но никогда показывает ввод для успешных тестов).
Можно ли увидеть этот ввод в консоли браузера? Я не смог его найти.
Наконец, это мой код.
using System;
class Solution {
public int solution(int[] A) {
var maxProfit = 0;
if ( A.Length > 2)
{
var minBuyPrice = Math.Min(A[0], A[1]);
var maxSellPrice = minBuyPrice;
for (int i = 2; i < A.Length; i++)
{
if ( minBuyPrice > A[i])
{
minBuyPrice = A[i];
maxSellPrice = A[i];
}
maxSellPrice = Math.Max(maxSellPrice, A[i]);
maxProfit = Math.Max(maxProfit, maxSellPrice - minBuyPrice);
}
}
else if ( A.Length == 2)
{
return Math.Max(0, A[1] - A[0]);
}
return maxProfit;
}
}