Превышен лимит времени для отправки Leetcode из-за плохого времени выполнения во время выполнения. В настоящее время код реализован со средой выполнения O(n^2). Как я могу улучшить временную сложность следующей задачи?
Это постановка задачи:
Данный массив из целых чисел, температура представляет собой дневную температуру, верните массив ответ, такой, что ответ — это количество дней, которое вам нужно подождать после iго дня, чтобы получить более высокую температуру. Если будущего дня, для которого это возможно, не существует, оставьте вместо этого answer == 0.
Пример 1:
Ввод: температуры = [73,74,75,71,69,72,76,73]
Выход: [1,1,4,2,1,1,0,0]
Пример 2:
Ввод: температуры = [30,40,50,60]
Выход: [1,1,1,0]
class Solution {
public:
vector dailyTemperatures(vector& temperatures) {
vector answer;
int days = 0;
for (int i = 0; i < temperatures.size(); i++) {
for (int j = i + 1; j < temperatures.size(); j++) {
if (temperatures < temperatures[j]) {
answer.push_back(j - i);
break;
}
else if (temperatures >= temperatures[j]) {
if (j == temperatures.size() - 1) {
answer.push_back(0);
}
}
}
}
answer.push_back(0);
return answer;
}
};
Подробнее здесь: https://stackoverflow.com/questions/790 ... exceeded-c
739. Проблема с дневной температурой: превышен лимит времени C++ [закрыто] ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему мой приведенный ниже код выдает ошибку «Превышен лимит памяти»? [закрыто]
Anonymous » » в форуме C++ - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-