题目:原题链接(中等)
标签:几何、数学、哈希表
解法  | 时间复杂度  | 空间复杂度  | 执行用时  | 
Ans 1 (Python)  | O ( N l o g N )  | O ( N )  | 48ms (98.11%)  | 
Ans 2 (Python)  | |||
Ans 3 (Python)  | 
解法一:
class Solution:
    def isReflected(self, points: List[List[int]]) -> bool:
        count = collections.defaultdict(set)  # 以点(x,y)的y为key,x为值
        for x, y in points:
            count[y].add(x)
        val = None
        for x, lst in count.items():
            lst = list(sorted(lst))
            if len(lst) % 2 == 1:
                mid = lst[len(lst) // 2]
            else:
                mid = (lst[len(lst) // 2 - 1] + lst[len(lst) // 2]) / 2
            # 检查自身是否相对中线对称
            left, right = 0, len(lst) - 1
            while left < right:
                if lst[right] - mid != mid - lst[left]:
                    return False
                left += 1
                right -= 1
            # 检查中线是否一致
            if val is None:
                val = mid
            elif val != mid:
                return False
        return True









