2D массив - посмотреть таблицу - PullRequest
0 голосов
/ 17 января 2012

Я пишу код для робота, который движется по полу в комнате (считается, что центром пола является начало координат (0,0)). Робот может двигаться в любом направлении (юг, восток, запад, север), касаясь разных вершин в полу. Я хотел бы знать, сколько уникальных вершин это коснулось. Для этого я использую динамический двумерный массив, в котором записывается каждое касание вершин. Итак, логика такая ... если робот касается вершины, эта вершина будет проверена в массиве. Если это там, я не увеличиваю свой счетчик. В конце я получу все уникальные вершины, которых робот коснется.

Есть ли какой-либо другой лучший способ найти уникальные вершины, которых касается робот.

Спасибо.

Я пишу код на C #. Размер оси x по полу (от 1 000 000 до 1 000 000), по оси Y (от 1 00 000 до 1 000 000)

1 Ответ

1 голос
/ 17 января 2012

Зависит от размера пола.Если он маленький, то ваш подход, вероятно, лучший.В качестве альтернативы, если размер пола настолько велик, что нецелесообразно хранить полную карту этого в памяти, тогда лучше использовать ассоциативный массив (или любой другой эквивалент в C #) с координатами вершин в качестве ключей и простым логическим значением в качествезначение, которое будет записывать только фактически посещенные вершины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...