「コーディングインタビューを割る」という本からの質問を解決しているときに...疑問が生じました.質問は次のとおりです。
2 次元平面上に 2 つの正方形がある場合、これら 2 つの正方形を半分に切る線を見つけます。
解決策: 長方形の中心を通る線は、長方形を半分に切断する必要があります。したがって、2 つの正方形の中心を結ぶ線を引くと、両方が半分になります。
public class Square {
public double left;
public double top;
public double bottom;
public double right;
public Square(double left, double top, double size) {
this.left = left;
this.top = top;
this.bottom = top + size;
this.right = left + size;
}
public Point middle() {
return new Point((this.left + this.right) / 2,
(this.top + this.bottom) / 2);
}
public Line cut(Square other) {
Point middle_s = this.middle();
Point middle_t = other.middle();
if (middle_s == middle_t) {
return new Line(new Point(left, top),
new Point(right, bottom));
} else {
return new Line(middle_s, middle_t);
}
}
}
しかし今疑問なのは、cut メソッドの '==' 演算子で、それらが同じ正方形の点であるかどうかを確認することです。ポイントは不変ですか?? 親切に助けてください...よろしくお願いします。