У меня возникли проблемы с эффективным алгоритмом для следующей проблемы, и мне было интересно, может ли кто-нибудь здесь помочь мне вне. И нет, это не домашнее задание. Любая помощь приветствуется!Найти элемент в коллекции, который может стать актуальным после того, как будет найден другой элемент
Скажем, у меня есть коллекция со следующими элементами: {A, B, C, D, .... Z}.
Каждый элемент имеет определенные требования к блокировке, которые могут быть выполнены, и выполнение этих требований может разблокировать другие элементы в коллекции.
Изначально, пробирая коллекцию, элемент A заблокирован, но последующие итерации в коллекции приводят меня к элементу D, а после обработки элемента D я получаю необходимые компоненты, чтобы иметь возможность использовать элемент A. Аналогичным образом, элемент L первоначально заблокирован, но после обработки элемента O элемент L может быть обработан.
Помимо циклирования в два раза или в обратном порядке по коллекции и сортировки коллекции, существует ли другой способ обработки всех элементов в одном цикле?
Что делать вы подразумеваете под «запертым»? –
Если элемент заблокирован, переместите его в конец коллекции, чтобы после того, как все незаблокированные элементы обработаны, вы можете проверить их снова. Вам нужно будет проверить, когда нужно разбить цикл, иначе он будет работать вечно, если есть элементы, которые не будут разблокированы. – Alexander
Чтобы он мог разблокировать и обработать его, ему нужен «ключ». Эти «ключи» выдаются после обработки элемента – Kitty1911