Вопрос задан 15.06.2023 в 03:51. Предмет Информатика. Спрашивает Вейс Аделина.

Дана строка длины n, состоящая из 0 и 1. Необходимо найти длину её наибольшей подстроки, состоящей

только из 1. Например, для строки 101101001001111011 ответом является число 4 . Для решения данной задачи написана такая программа: #include #include #include using namespace std; int main() { string S; cin >> S; int n = S.size(); int ans = 0; for (int i = 0; i < n; ++i) { int t = 0; while (i < n && S[i] == '1') { ++t; ++i; } ans = max(ans, t); } cout << ans << endl; return 0; } Определите асимптотику данного алгоритма. O(1) O(log n) O(√n) O(n) O(n^2) Правильного ответа нет
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Черняк Влад.

Ответ: O(n)

Несмотря на то, что алгоритм имеет цикл в цикле сложность равняется O(n), так как оба цикла изменяют один и тот же счётчик на 1. И оба остановятся когда i будет равно n. То есть суммарно будет проделано n итераций.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Данный алгоритм имеет асимптотику O(n), так как он содержит один цикл, который проходит по всем символам входной строки, и внутри этого цикла выполняется операция поиска подстроки из единиц. Таким образом, время выполнения алгоритма линейно зависит от длины входной строки.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос