# LeetCode – Line Reflection (Java)

Given n points on a 2D plane, find if there is such a line parallel to y-axis that reflects the given points.

Example 1:
Given points = [[1,1],[-1,1]], return true.

Example 2:
Given points = [[1,1],[-1,-1]], return false.

Could you do better than O(n2)?

Java Solution

For this problem, we first find the smallest and largest x-value for all points and get the line's x-axis is (minX + maxX) / 2, then for each point, check if each point has a reflection points in the set.

```public boolean isReflected(int[][] points) { if(points==null || points.length<2) return true;   HashMap<Integer, HashSet<Integer>> map = new HashMap<Integer, HashSet<Integer>>();   int min=Integer.MAX_VALUE; int max=Integer.MIN_VALUE;   for(int[] arr: points){ min = Math.min(min, arr[0]); max = Math.max(max, arr[0]); HashSet<Integer> set = map.get(arr[0]); if(set==null){ set = new HashSet<Integer>(); map.put(arr[0], set); }   set.add(arr[1]);   }   int y = min+max;   for(int[] arr: points){ int left = arr[0]; int right = y-left; if(map.get(right)==null || !map.get(right).contains(arr[1])){ return false; } }   return true; }```
Category >> Algorithms >> Interview
If you want someone to read your code, please put the code inside <pre><code> and </code></pre> tags. For example:
```<pre><code>
String foo = "bar";
</code></pre>
```
• S.Kavya M.Singaravel

I do not understand this solution. Can someone explain this?