加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

基本Java算法辅助

发布时间:2020-12-15 02:14:02 所属栏目:Java 来源:网络整理
导读:我需要帮助编写一个程序,该程序以(X,Y)形式给出指定数量的坐标点.将给出的分数是该计划的第一行;它可以通过扫描仪读入. 我需要用x = a和y = b来计算覆盖所有点的最小面积.因此,该区域将是* b(矩形区域). 但是,必须移除一个坐标点(X,Y)以优化该区域.被移除的
我需要帮助编写一个程序,该程序以(X,Y)形式给出指定数量的坐标点.将给出的分数是该计划的第一行;它可以通过扫描仪读入.

我需要用x = a和y = b来计算覆盖所有点的最小面积.因此,该区域将是* 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乘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();
        }
    }
}

可能的伪代码(从上面继续;这可能是错误的……):

for (int i = 0; i <= Xcoordinates.length; i++) { //loop through array 
     compare values,and determine outlier
     int lowestXValue = [find lowest x value]
     int highestXValue = [find highest x value; not outlier] }

     remove xcoordinates[outlier]
     remove ycoordinates[outlier]     

 int xLength = highestXValue - lowestXValue - 1 // -1 because can be on line

 for (int i = 0; i <= Ycoordinates.length; i++) { //loop through y array
      int lowestYValue = [find lowest y value]
      int highestYValue = [find highesy Y value] }

 int yLength = highestYValue - lowestYValue - 1;

 int boxArea = yLength * xLength

 System.out.println(boxArea);

但是,这只能搜索可能的X异常值,并且如果有一个Y值可以通过删除来最小化区域,那么它将无法捕获

解决方法

我将创建两个整数排序列表,一个用于x co-ords,另一个用于y co-ords.然后,您可以通过删除max x坐标来检查保存的区域(保存的区域应该是最大坐标时间(最大x坐标 – 第二高x坐标)).您可以通过删除最大坐标来检查保存的区域,并以最大的答案为准.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读