Google算法题:轴对称

xiaoxiao2021-02-28  104

题目

题目来源:Link

给定平面上的n个点,问是否存在一条平行于y轴的直线,使得这n个点相对于这条直线对称。

代码

package com.graph; import java.util.*; public class Solution{ public int solve(int[][] points){ if(points==null || points.length==0) return -1; int n = points.length; if(n%2==1) return -1; Map<Integer, Set<Integer>> map = new HashMap<Integer, Set<Integer>>(); int minx=0; int maxx=0; for(int i=0; i<n; i++) { minx=Math.min(minx, points[i][0]); maxx=Math.max(maxx, points[i][0]); if(!map.containsKey(points[i][1])) { map.put(points[i][1], new HashSet<Integer>()); } map.get(points[i][1]).add(points[i][0]); } for(int i=0; i<n; i++) { if(!map.get(points[i][1]).contains(minx+maxx-points[i][0])) { return -1; } } return 0; // //将点按照x轴方向排起来 // Arrays.sort(points, new Comparator<int[]>() { // @Override // public int compare(int[] a, int[] b) { // if(a[0]>b[0]) // return 1; // else if(a[0]<b[0]) // return -1; // return 0; // } // }); // //所有对称的x和相同 // int p = (points[0][0]+points[n-1][0]); // } }
转载请注明原文地址: https://www.6miu.com/read-59716.html

最新回复(0)