Попробуйте сначала reverse
список и запустите iterating
над ним
Пометить first number
, что вы нашли и начали отсчет последовательных номеров после него
If
, который вы получили None
перед тем, как счетчик больше n
, а затем сбросить счетчик, отметьте next number after None
и продолжите итерацию.
Else
, ваш отмеченный номер является ответом:)
Код для этого ниже:
def find_the_number(the_list, n):
counter = 0
possible_answer = None
for i in reversed(the_list):
if i is not None:
if counter == 0:
possible_answer = i
counter += 1
else:
counter = 0
if counter > n:
return possible_answer
mixed_list = [None, 1, 3, None, 5, 6, 7, 8, 10, None, None, 11, 12, None, None]
cons_number = 2
print(find_the_number(mixed_list, cons_number))
Вместо @TransactionAttribute(javax.ejb.TransactionAttributeType.NEVER)
Использование:
@TransactionAttribute(javax.ejb.TransactionAttributeType.NOT_SUPPORTED)
Это позволяет компоненту без состояния избегать присоединения к текущей выполняющейся транзакции; и запустить, как будто нет транзакции вообще ...
Почему присутствует транзакция?
blockquote>Я действительно не знаю ... Вы вызывали какой-либо другой компонент J2EE (например, компонент CDI с аннотацией
@Transactional
или другой EJB) перед вызовом вашего компонента без гражданства?