Эта проблема возникла при предварительном опросе онлайн-теста кодирования. Я попытался полностью изменить сценарий & любую несущественную информацию, чтобы не допустить, чтобы кто-либо принимал упомянутый тест, обнаруживая этот пост.Максимальное количество смежных битов, переворачивающих только один
Проблема связана с чередой байтов. Вас попросили найти максимальное количество смежных пар, если вы можете перевернуть один бит.
ie 101110 будет иметь 4 смежные пары, если вы перевернули второй бит.
Мне был предоставлен код, который, как представляется, решил проблему, и попросил исправить ее, заменив до трех строк. К сожалению, я не смог найти ошибку. Ее было расстраивает меня некоторое время теперь ..
Прилагаемый код (составитель и побежал на приводимый пример отлично)
int sol(int[] Arr):
int l = len(Arr)
int t = 0
for i 0..(l-2):
if A[i] = A[i+1]:
t += 1
int r = 0
for i 0..(l-1):
int c = 0
if i > 0:
if A[i-1] != A[i]:
c++
else:
c--
if i < (l-1):
if A[i+1] != A[i]:
c++
else:
c--
r = Max(r, c);
return t+r
Есть идеи?
Пожалуйста, добавьте соответствующий тег языка. –
На тестовом сайте вы можете отвечать на нескольких языках. Вышеприведенное предложение действительно псевдокод, написанное в письменной форме, чтобы не слишком сильно отражать любой из доступных языков. – Hector
ОК - вы сказали в своем вопросе, что он «скомпилирован и запущен» - отсюда мое предложение. Возможно, вы могли бы добавить вместо этого тег 'language-agnostic'. –