/*
思考题:
有一个Point类,保存了x,y.
通过控制台录入了n,
然后录入了n个坐标。
保存在了集合中。
排序 去重
查找这些点能组成矩形的情况,有多少组。
排序,则需要什么规则
去重,需要如何处理Point类中的方法
即排序又去重,应当采用什么类
* */
javapackage 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); } }
一批点中,找出能找出多少对可以组成的矩形
laocooon5238578862024-09-27 23:47
相关推荐
如若1237 小时前
Windows SSH + Headscale/Tailscale 组网及免密登录完整配置教程ITHAOGE159 小时前
下载 | Win11 25H2 官方正式版ISO映像!(10月更新、消费者版/专业版、商业版/企业版、26200.9711)John_Hui9 小时前
Windows 10 安装版本:mysql-8.1.0-winx64.zipkingx39 小时前
Windows Server安全配置深度复盘:关键 Payload 与解题思路技术人生00110 小时前
DirectX修复工具下载安装教程-Windows系统游戏dll修复工具下载安装修复教程2601_9623649711 小时前
企业 PC 安全升级,Windows Hello 商用生物识别模组介绍2501_9160074714 小时前
Windows OpenSSL 生成 iOS 证书,制作 p12 与描述文件,KXBuild 签名实操椒颜皮皮虾྅16 小时前
模型部署不再卡在环境上:DeploySharp 四大推理引擎与 Windows/Linux 离线交付实战昂好的day16 小时前
C# 同步异步与多线程:Thread / Task / 线程池一次讲透(上篇)垆边人似月.16 小时前
Ubuntu 配置 Samba 共享文件夹并映射到 Windows 完整指南