ToB企服应用市场:ToB评测及商务社交产业平台
标题:
一批点中,找出能找出多少对可以组成的矩形
[打印本页]
作者:
河曲智叟
时间:
2024-10-1 12:46
标题:
一批点中,找出能找出多少对可以组成的矩形
/*
思索题:
有一个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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4