package com.interview.books.leetcode; import com.interview.leetcode.utils.Point; import com.interview.utils.GeoUtil; /** * Created_By: stefanie * Date: 14-12-10 * Time: 下午10:12 */ public class LCS2_PointInRectangle { public boolean isInRectangle(Point[] points, Point target){ int len = points.length; float[][] pointArray = new float[2][points.length]; for(int i = 0; i < points.length; i++) pointArray[i] = points[i].getFloat(); float[] targetPoint = target.getFloat(); for(int i = 0; i < points.length; i++){ float cross = GeoUtil.crossProduct(pointArray[(i) % len], pointArray[(i + 1) % len], targetPoint); if(cross > 0) return false; } return true; } public boolean isInAlignedRectangle(Point[] points, Point target){ return !(target.x < points[0].x || target.x > points[1].x || target.y > points[0].y || target.y < points[1].y); } }