资讯专栏INFORMATION COLUMN

469. Convex Polygon

lemon / 2083人阅读

摘要:题目链接不会,参考这个博客的解释计算三个点的法向量叉乘,任意三个点必须同正或同负。这样判断三点组成的两边角度是否小于。注意考虑度的情况,这时候叉乘为。

469. Convex Polygon

题目链接:https://leetcode.com/problems...

不会,参考这个博客的解释:
http://www.cnblogs.com/grandy...

计算三个点的法向量(叉乘),任意三个点必须同正或同负。这样判断三点组成的两边角度是否小于180。注意考虑90度的情况,这时候叉乘为0。

public class Solution {
    public boolean isConvex(List> points) {
        int prev = 0;
        int n = points.size();
        for(int i = 0; i < n; i++) {
            // check the angle constructed by (p0, p1) and (p0, p2)
            List p0 = points.get(i);
            List p1 = points.get((i + 1) % n);
            List p2 = points.get((i + 2) % n);
            int dx1 = p0.get(0) - p1.get(0), dx2 = p0.get(0) - p2.get(0);
            int dy1 = p0.get(1) - p1.get(1), dy2 = p0.get(1) - p2.get(1);
            
            int cur = getProduct(dx1, dx2, dy1, dy2);
            // product different
            if((prev < 0 && cur > 0) || (prev > 0 && cur < 0)) return false;
            prev = (cur == 0 ? prev : cur);
        }
        return true;
    }
    
    private int getProduct(int dx1, int dx2, int dy1, int dy2) {
        return dx1 * dy2 - dx2 * dy1;
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76398.html

相关文章

  • JAVA Polygon 在配送区域超区校验的实践

    摘要:业务背景物流同城配送,在用户下单的时候会进行配送超区校验,前端会将用户的定位传入后台服务,后台服务针对商家的自定义配送区域通过地图控件拖拽出来的不规则图形进行校验。 业务背景 物流同城配送,在用户下单的时候会进行配送超区校验,前端会将用户的定位传入后台服务,后台服务针对商家的自定义配送区域(通过地图控件拖拽出来的不规则图形)进行校验。 showImg(https://segmentfa...

    Me_Kun 评论0 收藏0
  • species-in-pieces网站动效的JS实现

    摘要:难度系数普通关键词前言看到网站做的很炫,想要借鉴,发现主要是用的实现的,兼容不好,因此想着用实现下。实现思路根据参考网站的代码,动物图案是用实现的,第一时间想到了的另外对于转场动画,过渡动画,找个自己熟悉的动画库实现就行了。 难度系数:普通关键词:GSAP SVG 前言 看到species网站做的很炫,想要借鉴,发现主要是用css3的clip-path实现的,兼容不好,因此想着用js...

    galois 评论0 收藏0
  • 最小外接矩形思路以及实现

    摘要:最小外接矩形外接矩形计算对一个凸多边形进行外接矩形计算,需要知道当前面的最大和最小值,即可获得外接矩形最小外接矩形计算对凸多边形的每一条边都绘制一个外接矩形求最小面积。 最小外接矩形 外接矩形计算 对一个凸多边形进行外接矩形计算,需要知道当前面的最大xy 和最小xy值,即可获得外接矩形 showImg(https://segmentfault.com/img/remote/146000...

    qiangdada 评论0 收藏0
  • leaflet绘制区域(仿高德地图效果)

    摘要:官网效果脚本地图中心点昆明地图缩放层级缩放禁止双击放大版权切片图层地址绘制区域单击移动清除双击移除事件保存方便后面删除请入名称键盘事件键拖动 leaflet官网:http://leafletjs.com/ 效果:showImg(https://segmentfault.com/img/bVOmeX?w=546&h=351); 脚本: var map = L.map(map, { ...

    lwx12525 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<