Files
obsidian/АиСД/Задачи/LeetCode/Line reflection.md
T
roma-dxunvrs 0e6e583e6d
deploy / Pull and Restart (push) Successful in 17s
refactor: wiki links -> md links
2026-09-22 08:52:23 +03:00

30 lines
1.1 KiB
Markdown

Leetcode #356 | #Medium | [Хэш-таблицы](../../Структуры/Хэш-таблицы.md) | [Математика](../../Методы/Математика.md)
## Идея
Отражение относительно x=k, считаем сумму minX+maxX и заводим хэш-сет точек, если есть точка (sum-x,y) то отражение существует
## Big-O
- Время ```O(N)```
- Память ```O(N)```
## Код
```Java
public class Solution {
public boolean isReflected(int[][] points) {
if (points.length <= 1) return true;
int minX = Integer.MAX_VALUE;
int maxX = Integer.MIN_VALUE;
Set<String> set = new HashSet<>();
for (int[] p : points) {
minX = Math.min(minX, p[0]);
maxX = Math.max(maxX, p[0]);
set.add(p[0] + "#" + p[1]);
}
int sum = minX + maxX;
for (int[] p : points) {
if (!set.contains((sum - p[0]) + "#" + p[1])) {
return false;
}
}
return true;
}
}
```