【Leetcode】469. Convex Polygon
admin
2024-01-21 06:20:34
0

题目地址:

https://leetcode.com/problems/convex-polygon/description/

给定一个多边形的nnn个顶点坐标组成的数组AAA,题目保证按所给顺序遍历这些顶点可以得到一个nnn边形,问这个多边形是不是凸的。

看一下A[0]A[1]⃗×A[1]A[2]⃗\vec{A[0]A[1]}\times \vec{A[1]A[2]}A[0]A[1]​×A[1]A[2]​的符号(即指向纸面外还是内),然后依次计算A[k]A[k+1]⃗×A[k+1]A[k+2]⃗\vec{A[k]A[k+1]}\times \vec{A[k+1]A[k+2]}A[k]A[k+1]​×A[k+1]A[k+2]​的符号,如果其中一个符号与A[0]A[1]⃗×A[1]A[2]⃗\vec{A[0]A[1]}\times \vec{A[1]A[2]}A[0]A[1]​×A[1]A[2]​不同,则说明发生了凹陷,从而不是凸多边形。代码如下:

class Solution {public:bool isConvex(vector>& ps) {int n = ps.size();// 注意,最后还需要判断最后两个点和起始点的向量叉乘。ps.push_back(ps[0]);ps.push_back(ps[1]);int p = cross(ps[0], ps[1], ps[1], ps[2]) > 0 ? 1 : -1;for (int i = 0; i < n; i++)if (cross(ps[i], ps[i + 1], ps[i + 1], ps[i + 2]) * p < 0) return false;return true;}int cross(vector& a, vector& b, vector& c, vector& d) {int x1 = b[0] - a[0], x2 = d[0] - c[0];int y1 = b[1] - a[1], y2 = d[1] - c[1];return x1 * y2 - x2 * y1;}
};

时间复杂度O(n)O(n)O(n),空间O(1)O(1)O(1)。

相关内容

热门资讯

修改工具教程版!梧桐树智能插件... 梧桐树这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这款游戏...
修改工具教程版!凌龙棋牌智能插... 修改工具教程版!凌龙棋牌智能插件是真的,分享详细开挂攻略是一款可以让一直输的玩家,快速成为一个“必胜...
修改工具教程版!随便玩红拐弯智... 您好:随便玩红拐弯确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都...
修改工具教程版!如意智能插件是... 如意这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这款游戏中...
修改工具教程版!欢乐二七十智能... 修改工具教程版!欢乐二七十智能插件是真的,分享详细开挂攻略1、让任何用户在无需AI插件第三方神器的情...
修改工具教程版!老铁十三水智能... 修改工具教程版!老铁十三水智能插件是真的,分享详细开挂攻略是一款可以让一直输的玩家,快速成为一个“必...
修改工具教程版!牵手长沙棋牌智... 修改工具教程版!牵手长沙棋牌智能插件是真的,分享详细开挂攻略一、牵手长沙棋牌AI软件牌型概率发牌机制...
修改工具教程版!微乐浙江麻将智... 您好:微乐浙江麻将确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都...
修改工具教程版!乐虎棋牌智能插... 乐虎棋牌这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这款游...
修改工具教程版!大掼蛋智能插件... 修改工具教程版!大掼蛋智能插件是真的,分享详细开挂攻略;原来确实真的有挂(需添加指定薇7198902...
修改工具教程版!桂林游戏智能插... 修改工具教程版!桂林游戏智能插件是真的,分享详细开挂攻略;原来确实真的有挂(需添加指定薇719890...
修改工具教程版!Newpk俱乐... Newpk俱乐部这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家...
修改工具教程版!直隶麻将智能插... 修改工具教程版!直隶麻将智能插件是真的,分享详细开挂攻略1、让任何用户在无需AI插件第三方神器的情况...
修改工具教程版!云端互娱智能插... 云端互娱这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这款游...
修改工具教程版!新卡贝智能插件... 您好:新卡贝确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发现...
修改工具教程版!天津麻将智能插... 您好,天津麻将这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
修改工具教程版!博雅红河棋牌智... 您好,博雅红河棋牌这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏...
修改工具教程版!淮滨麻将智能插... 您好,淮滨麻将这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
修改工具教程版!财神十三张智能... 修改工具教程版!财神十三张智能插件是真的,分享详细开挂攻略1、让任何用户在无需AI插件第三方神器的情...
修改工具教程版!欢乐茶馆智能插... 您好:欢乐茶馆确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发...