河曲智叟 发表于 2024-10-1 12:46:22

一批点中,找出能找出多少对可以组成的矩形

 
/*
思索题:
有一个Point类,保存了x,y.
通过控制台录入了n,
然后录入了n个坐标。
保存在了集合中。
排序 去重
查找这些点能组成矩形的环境,有多少组。

排序,则必要什么规则
去重,必要怎样处置处罚Point类中的方法
即排序又去重,应当接纳什么类
* */
   
package point;



import java.util.*;

class Point implements Comparable<Point>{
    private int x,y;

    public Point(int x, int y) {
      this.x = x;
      this.y = y;
    }

    public int getX() {
      return x;
    }

    public void setX(int x) {
      this.x = x;
    }

    public int getY() {
      return y;
    }

    public void setY(int y) {
      this.y = y;
    }

    @Override
    public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      Point point = (Point) o;
      return x == point.x && y == point.y;
    }

    @Override
    public int hashCode() {
      return Objects.hash(x, y);
    }

    @Override
    public String toString() {
      return "Point{" +
                "x=" + x +
                ", y=" + y +
                '}';
    }

    @Override
    public int compareTo(Point o) {
      if(this.x==o.x)
            return this.y-o.y;
      else
            return this.x-o.x;
    }
}
public class MainTest {
    public static void main(String[] args) {
      Scanner in= new Scanner(System.in);
      TreeSet<Point> set= new TreeSet<>();
      int n=in.nextInt();
      for(int i=0;i<n;i++){
            int x,y;
            x=in.nextInt();
            y=in.nextInt();
            set.add(new Point(x,y));
      }
      int res=0;
      ArrayList<Point> list = new ArrayList<>(set);//set转为列表
      for(int i=0;i<list.size();i++){
            for(int j=0;j<list.size();j++){
                if(list.get(i).getX()<list.get(j).getX() && list.get(i).getY()<list.get(j).getY()
                &&list.contains(new Point(list.get(i).getX(),list.get(j).getY()))
                &&list.contains(new Point( list.get(j).getY(),list.get(i).getX()))
                ){
                  res++;
                }
            }
      }
      System.out.println(res);
    }
}


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 一批点中,找出能找出多少对可以组成的矩形