摘要:問題解答這個解法是看的里的,看著簡單,但想到很難。我們要求是不是對稱,就是要求每一個點是不是有個點跟它對應。因為可以一個點重復出現,決定我們用來做。記錄每一個出現的點,然后再用來找其對應的點。
問題:
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(n2)?
解答:
這個解法是看的discuss里的,看著簡單,但想到很難。我們要求是不是對稱,就是要求每一個點是不是有個點跟它對應。因為可以一個點重復出現,決定我們用hashset來做。記錄每一個出現的點,然后再用hashset來找其對應的點。
代碼:
public boolean isReflected(int[][] points) { int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE; Setset = new HashSet (); for (int[] p : points) { set.add(p[0] + "," + p[1]); min = Math.min(min, p[0]); max = Math.max(max, p[0]); } int sum = min + max; for (int[] p : points) { if (!set.contains((sum - p[0]) + "," + p[1])) { return false; } } return true; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64873.html
摘要:實際上這題的要求是所有點的關于一個軸對稱,坐標左右全部對稱,就是說就是對的,但是就不對,因為沒有和它對稱的點。也是對的,都是關于這個軸對稱。看了里面直接用加上分隔符來表示點,這樣不用自己定義簡單點。 356. Line Reflection 題目鏈接:https://leetcode.com/problems... 這題給的例子太神了根本看不懂。實際上這題的要求是所有點的關于一個y軸對...
摘要:題目解法這道題主要是判斷個點是否沿某條線對稱,可以從提示看出來所有的點應該要滿足所以先把所有的點掃一遍存下來,找到和然后再掃一遍,判定是否點都是延直線對稱的。時間復雜度空間復雜度代碼 題目: Given n points on a 2D plane, find if there is such a line parallel to y-axis that reflect the gi...
摘要:說明中經常使用的反射特性來設計代碼,本文主要學習的反射特性,來提高寫代碼時的設計質量。提供一套檢測的兩個工具包和,類似于探針一樣的東西來探測這些一等公民。限于篇幅,下篇再聊下反射。 說明:Laravel中經常使用PHP的反射特性來設計代碼,本文主要學習PHP的反射特性,來提高寫代碼時的設計質量。PHP提供一套檢測class, interface, trait, property, me...
閱讀 3170·2021-09-10 10:51
閱讀 3351·2021-08-31 09:38
閱讀 1639·2019-08-30 15:54
閱讀 3129·2019-08-29 17:22
閱讀 3214·2019-08-26 13:53
閱讀 1960·2019-08-26 11:59
閱讀 3283·2019-08-26 11:37
閱讀 3308·2019-08-26 10:47