Java 2D 最小化

标签 java arrays

我需要帮助编写一个程序,该程序以 (X,Y) 的形式给出指定数量的坐标点。将给出的点数是程序中的第一行;它可以通过扫描仪读取。

我需要计算覆盖线 x = a 和 y = b 的所有点的最小面积。因此,面积将为 a * b(矩形的面积)。

但是,必须删除一个坐标点(X,Y)才能优化该区域。被移除的点应尽可能减少其面积。我需要帮助编写算法来做到这一点。

这是我得到的示例输入和输出::

示例输入

4

2 4

1 1

5 2

17 25

示例输出

12

<小时/>

在此示例中,第一行输入 (4) 表示将输入四个点。接下来的四行是 (x, y) 形式的坐标。最后一个点 (17, 25) 被作为异常值删除,只剩下前三个点。

If these three remaining points are graphed

如果将剩余的三个点绘制成图形,它们都可以位于一个盒子内(3 x 4),因此输出为 12; (3 * 4)。像本例中那样,线位于该点上就可以了。然而,异常值并不总是最后一个点,或者非常大。异常值可能非常小,只需要最小化该区域即可。

-- 这就是我到目前为止所拥有的(我知道这不是很多..) - 请帮助我!

这主要是我需要帮助的算法..

import java.io.*;
import java.util.*;

public class Area {

    public static void main(String args[]) {

        Scanner scan = new Scanner(System.in);

        int numOfPoints = scan.nextInt();
        int Xcoordinates[] = new int[numOfPoints];
        int Ycoordinates[] = new int[numOfPoints];


        for (int i = 0; i <= numOfCows - 1; i++) {
            Xcoordinates[i] = scan.nextInt();
            Ycoordinates[i] = scan.nextInt();
        }

最佳答案

让您拥有4(2 4)、(1 1)、(5 2)、(17 25)。 由于您总是可以删除一个点来优化区域,因此,有 C(4,3) 种可能的点组合,它们是:

{ { (2 4), (1 1), (5 2) }, { (1 1), (5 2), ( 17 25) }, { (2 4), (5 2),(17 25) }, { (2 4),(1 1),(17 25 ) } }

<小时/>

您可以找到的一组最小区域为:

(Max(所有 x 坐标)-Min(所有 x 坐标)) * (Max(所有 y 坐标) 坐标)-Min(所有 y 坐标))

<小时/>
  1. { (2 4), (1 1), (5 2) }

    该组的最小面积等于(5-1)*(4-1) = 4*3 = 12

  2. { (1 1), (5 2), (17 25) }

    您可以找到该组的最小面积为:(17-1)*(25-1) = 16*24 = 384

  3. { (2 4), (5 2), (17 25) }

    您可以找到该组的最小面积为:(17-2)*(25-2) = 15*23 = 345

  4. { (2 4),(1 1),(17 25) }

    您可以找到该组的最小面积为:(17-1)*(25-1) = 16*24 = 384

<小时/>

在集合{ (2 4), (1 1), (5 2) }的所有区域中,最小值等于 12 ,所以所需的答案是12

关于Java 2D 最小化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36383253/

相关文章:

java - Array.equals(...) 给出了不正确的结果

java - 需要帮助查找分解代码中的错误

java - 启用 GPS 时启动我的 Android 应用程序强制关闭

java - 如何在adf中的iterator.excuteQuery()之后再次选择currentRow?

java - 在 ejb 3.1 无状态计时器中使用 spring 服务

objective-c - 如何附加到 C 数组的末尾

java - 方法 "glActiveTexture"不可用

c++ - 以下 c++ 函数中的数组重新分配在函数调用后似乎已被忽略。

javascript - 使用javascript for循环,访问php数组变量

c - 从数组中添加/删除元素