356. Line Reflection

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

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

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

Follow up:
Could you do better than O(n^2)?

一刷
题解:一种很简单的思路。先找到那个反射面。所以我们要先找到所有点中x最小的,x最大的,它们的平均值即是反射面sum/2。然后再将所有点p[0] + "a" + p[1]存入set中,如果sum - p[0] + "a" + p[1]不在set中。return false

class Solution {
    public boolean isReflected(int[][] points) {
        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        HashSet<String> set = new HashSet<>();
        for(int[] p : points){
            max = Math.max(max, p[0]);
            min = Math.min(min, p[0]);
            String str = p[0] + "a" + p[1];
            set.add(str);
        }
        int sum = max + min;
        for(int[] p:points){
            String str = (sum-p[0]) + "a" + p[1];
            if( !set.contains(str)) return false;
        }
        return true;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,120评论 19 139
  • 正在为大三的最后一篇论文奋斗。 已经是本学期写的第7篇论文了;已经时本学年写的第14篇论文了。 加拿大的大学真不是...
    Rui的败笔阅读 1,697评论 0 1
  • 沉默着/是花瓣离开时的选择 遥远的/不再是转身的那一刻 起风了/也就单单满足过风车 而我呢/终于听懂了心如刀割 曾...
    YuXiAn_ChAn阅读 2,713评论 0 1
  • 最近几天,小仙女的睡眠都不太好吧,晚上很晚才睡着,偶尔早上还要起很早去上课,又是考研复习的日子,总感觉她的精神是不...
    虚音阅读 3,056评论 0 0

友情链接更多精彩内容