Skip to content

Create struct Point#41

Open
Tim-tech-gif wants to merge 1 commit into
djnzx:masterfrom
Tim-tech-gif:patch-41
Open

Create struct Point#41
Tim-tech-gif wants to merge 1 commit into
djnzx:masterfrom
Tim-tech-gif:patch-41

Conversation

@Tim-tech-gif

Copy link
Copy Markdown

Щоб обчислити фактичну зайняту площу кількома прямокутниками на площині, потрібно врахувати можливе перекриття між ними. Для цього можна використати підхід зі скануючою лінією або просто перевіряти перекриття кожної пари прямокутників. Ось можливий підхід для реалізації функції area_occupied:

Розділити прямокутники на відрізки (за осями X та Y). Знайти унікальні відрізки по осі X та Y.
Для кожної клітинки на площині, визначити, чи вона зайнята прямокутниками. Порахувати загальну площу зайнятих клітинок.

Як працює цей код:
Ми збираємо всі унікальні координати по осях X та Y для кожного прямокутника. Далі, для кожного сегмента між цими координатами перевіряється, чи цей сегмент перекривається будь-яким з прямокутників. Якщо сегмент перекривається хоча б одним прямокутником, його площа додається до загальної зайнятої площі. Тест перевіряє, що функція правильно повертає 60 для наведених даних.

Щоб обчислити фактичну зайняту площу кількома прямокутниками на площині, потрібно врахувати можливе перекриття між ними. Для цього можна використати підхід зі скануючою лінією або просто перевіряти перекриття кожної пари прямокутників.
Ось можливий підхід для реалізації функції area_occupied:

Розділити прямокутники на відрізки (за осями X та Y).
Знайти унікальні відрізки по осі X та Y.
Для кожної клітинки на площині, визначити, чи вона зайнята прямокутниками.
Порахувати загальну площу зайнятих клітинок.

Як працює цей код:
Ми збираємо всі унікальні координати по осях X та Y для кожного прямокутника.
Далі, для кожного сегмента між цими координатами перевіряється, чи цей сегмент перекривається будь-яким з прямокутників.
Якщо сегмент перекривається хоча б одним прямокутником, його площа додається до загальної зайнятої площі.
Тест перевіряє, що функція правильно повертає 60 для наведених даних.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant