注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
本帖最后由 qdolobp 于 2016-12-6 17:10 编辑
和女朋友结对编程LeetCode 469. Convex Polygon,结果俩人谁也没看出来哪错。求问,女朋友这么笨,她还能找到工作吗? 附上代码:
public class Solution {
public boolean isConvex(List<List<Integer>> points) {
int size = points.size();
int pre = 0;
for (int i = 0; i < size; i++) {
List<Integer> point0 = points.get((i) % size);
List<Integer> point1 = points.get((i + 1) % size);
List<Integer> point2 = points.get((i + 2) % size);
int cur = crossProduct(point0, point1, point2);
if (cur != 0) {
if (pre * cur < 0) {
return false;
}
pre = cur;
}
}
return true;
}
private int crossProduct(List<Integer> p0, List<Integer> p1, List<Integer> p2) {
int x1 = p1.get(0);
int y1 = p1.get(1);
int x0 = p0.get(0);
int y0 = p0.get(1);
int x2 = p2.get(0);
int y2 = p2.get(1);
return (x1 - x0) * (y2 - y0) - (x2 - x0) * (y1 - y0);
}
}
Input:
[[0,1907],[6,952],[12,29],[376,23],[1217,10],[2622,2],[9260,5],[9729,33],[9977,111],[9995,3692],[9984,8244],[9963,9092],[9941,9740],[9915,9966],[9754,9992],[9665,9999],[808,9997],[201,9966],[93,9928],[4,9247],[2,7152],[0,4926]]
Output:
false
Expected:
true
|