Я решил проблему и застрял.Он гласит: «У нас есть двоичная последовательность 0 и 1. Мы можем выполнить эту операцию над последовательностью любое количество раз: для любого бита d, который равен 0, если существует 1 (если изначально есть 1, а не после»).изменение) по меньшей мере на одном из предыдущих двух битов, т.е. на битах d-1 и d-2, и на по меньшей мере на одном из следующих двух битов, т.е. на битах d + 1 и d + 2, мы можем изменить его на 1Однако невозможно изменить первые два бита и последние два бита.
Вес последовательности - это общее количество единиц в последовательности, деленное на длину последовательности.Нам нужно сделать этот вес не менее 0,75, и цель состоит в том, чтобы найти минимальное количество битов, которые необходимо изменить, чтобы вес последовательности был не менее 0,75. Если мы не можем сделать вес не менее 0,75, выведите -1
Например
Заданная последовательность: 100110111
Ответ = 1
Объяснение: Мы можем изменить бит 3 с 0 на 1, поэтому последовательность становится 101110111, вес которой больше 0,75
Мой подход:
Сначала я нашел начальный вес последовательности, и если он был меньше 0,75, то итерацию последовательности с позиции бита 2 до длины-2, и для каждого бита, имеющего 0, проверьте условие для [{(d-1) = 1 ИЛИ (d-2) = 1} И {(d + 1) = 1 ИЛИ (d + 2) = 1}] И пересчитывает вес на каждом шаге, и если вес превышает 0,75, то выведите ответ,Но такой подход дает неправильный ответ.