# Leetcode 497 - Random Point in Non-overlapping Rectangles

`Note:`

- The weight of random rectangle is not
`area`

but how many`integers`

it covers. - How to pick an rectangle based on the number of integers that a rect covers?
- Use
`presum[]`

. Use`random * totalInts`

can give us an`index`

by checking in`presum[]`

.

`Question:`

You are given an array of non-overlapping axis-aligned rectangles `rects`

where `rects[i] = [ai, bi, xi, yi]`

indicates that `(ai, bi)`

is the `bottom-left`

corner point of the ith rectangle and `(xi, yi)`

is the `top-right`

corner point of the ith rectangle. Design an algorithm to pick a `random`

integer point inside the space `covered`

by one of the given rectangles. A point on the `perimeter`

of a rectangle is `included`

in the space covered by the rectangle.

Any integer point inside the space covered by one of the given rectangles should be equally likely to be returned.

Note that an integer point is a point that has integer coordinates.

Implement the `Solution`

class:

`Solution(int[][] rects)`

Initializes the object with the given rectangles rects.`int[] pick()`

Returns a random integer point [u, v] inside the space covered by one of the given rectangles.

`Example:`

1 | Input |

`Code:`

1 | /** |