前言
某次参加华为OD机考,其中抽中的一道题是输入一组坐标集合,然后输出可以组成正方形的个数以及能组成正方形的坐标组合,当时自己也是一筹莫展,竟然用四条相邻的边相等和相邻两条边的夹角为90度这样的数学建模来解决...1,1},{1,3},{3,1},{3,3} {1,2},{2,2},{1,3},{2,3} {2,1},{2,2},{3,1},{3,2} {2,2},{3,3},{2,3},{3,2}
解题思路
1、从所有坐标集合中任意选出所有...4个坐标的组合;
2、遍历所有4个点坐标组合,根据4个点组成的四边形首先判断两条对角线的中点是否重合,不重合则一定不是正方形;
3、根据点的坐标判断两条邻边是否相等以及两条邻边长度的平方和是否等于对象线长度的平方和...pointStr: pointStrArray){
String[] pointString = pointStr.split(",");
// 拆分的数组第一个值为横坐标...个坐标中选出4个点一共有C(4,9)共21种组合,从程序的输出结果我们可以看到它们只能组成5个正方形,把他们放到坐标系中验证5组4个点的组合都可以组成正方形。