Posts

Showing posts with the label geometry

2013. Detect Squares

Image
 https://leetcode.com/problems/detect-squares/description/ You are given a stream of points on the X-Y plane. Design an algorithm that: Adds  new points from the stream into a data structure.  Duplicate  points are allowed and should be treated as different points. Given a query point,  counts  the number of ways to choose three points from the data structure such that the three points and the query point form an  axis-aligned square  with  positive area . An  axis-aligned square  is a square whose edges are all the same length and are either parallel or perpendicular to the x-axis and y-axis. Implement the  DetectSquares  class: DetectSquares()  Initializes the object with an empty data structure. void add(int[] point)  Adds a new point  point = [x, y]  to the data structure. int count(int[] point)  Counts the number of ways to form  axis-aligned squares  with point  point = [x, y] ...

305. Number of Distinct Islands II

https://www.lintcode.com/problem/number-of-distinct-islands-ii/description https://leetcode.com/problems/number-of-distinct-islands-ii Given a non-empty 2D array  grid  of 0's and 1's, an  island  is a group of  1 's (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water. Count the number of  distinct  islands. An island is considered to be the same as another if they have the same shape, or have the same shape after  rotation  (90, 180, or 270 degrees only) or  reflection  (left/right direction or up/down direction). Example 1: 11000 10000 00001 00011 Given the above grid map, return  1 . Notice that: 11 1 and 1 11 are considered  same  island shapes. Because if we make a 180 degrees clockwise rotation on the first island, then two islands will have the same shapes. Example 2: 11100 10001 01001 01110 Given the ab...

694. Number of Distinct Islands

https://www.lintcode.com/problem/number-of-distinct-islands/description https://leetcode.com/problems/number-of-distinct-islands https://github.com/openset/leetcode/tree/master/problems/number-of-distinct-islands Given a non-empty 2D array  grid  of 0's and 1's, an  island  is a group of  1 's (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water. Count the number of  distinct  islands. An island is considered to be the same as another if and only if one island can be translated (and not rotated or reflected) to equal the other. Example 1: 11000 11000 00011 00011 Given the above grid map, return  1 . Example 2: 11011 10000 00001 11011 Given the above grid map, return  3 . Notice that: 11 1 and 1 11 are considered different island shapes, because we do not consider reflection / rotation. Note:  The length of each dimension in the given  grid ...