根据给定的混乱坐标形成矩形的最小面积

2024 年 8 月 28 日 | 3 分钟阅读

假设有一个大小为 N 的数组 arr[],该数组表示 N / 2 个矩形的坐标,其 X 和 Y 坐标被随机打乱。此问题的目标是通过从数组 arr[] 中选择 X 和 Y 来创建 N / 2 对 (X, Y) 坐标,使得包含所有这些点的矩形具有最小的面积。

假设我们得到一个 XY 平面上的点数组。我们必须确定可以从这些点创建的最小矩形。矩形的边必须平行于 X 和 Y 轴。如果我们无法构成矩形,我们将返回 0。因此,如果点数组是 [(1, 1), (1, 3), (3, 1), (3, 3), (2, 2)]。结果将是 4。因为矩形可以通过连接点 (1, 1), (1, 3), (3, 1) 和 (3, 1), (3, 3) 来创建。

要解决此问题,请按照以下说明进行操作

  • 应将数组 arr[] 排序。
  • 创建一个名为 ans 的变量以包含潜在的答案。
  • 声明 low = 1 和 high = N/2 - 1 以将窗口大小从 0 设置到 (N/2) - 1。
  • 启动一个 while 循环,并检查 low==0。如果是这种情况,则更改第一个幻灯片的答案。
  • 但是,当幻灯片到达结尾 high == N-1 时,中断。
  • 否则,更改第 i 个幻灯片的 ans 以及 low 和 high 指针。

上述技术实现如下:

C++ 代码

输出

1
0

Java 程序

输出

1
0
  • 时间复杂度O(N)。
  • 辅助空间O(1)。