【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)。

相关内容

热门资讯

安卓支付系统叫什么名,探索“X... 你有没有发现,现在出门不带钱包也能轻松付款呢?这都得归功于那些神奇的支付系统。说到安卓手机上的支付系...
虚拟卡软件推荐安卓系统,打造个... 你有没有想过,在手机上轻松管理多个账户,同时还能享受便捷的支付体验?这就得靠那些神奇的虚拟卡软件啦!...
安卓双系统平板推荐,性能与多任... 你有没有想过,拥有一台既能满足工作需求,又能畅享娱乐的平板电脑是多么美妙的事情呢?现在,市面上安卓双...
安卓王者如何换苹果系统,系统切... 你有没有想过,从安卓王者到苹果系统,这可不是简单的换一个手机壳那么简单哦!想象你手中的安卓手机,承载...
安卓系统纯净模式设置步骤,安卓... 你有没有想过,你的安卓手机其实可以变得更“纯净”呢?没错,就是那种没有广告、没有后台偷偷运行的应用,...
xbox能连安卓系统吗,探索跨... 你有没有想过,家里的Xbox游戏机能不能和安卓手机来个亲密接触呢?想象一边玩游戏,一边用手机控制,是...
安卓卡刷系统报错7,揭秘故障原... 最近是不是你也遇到了安卓手机卡刷系统时出现的那个让人头疼的报错7?别急,今天就来给你详细解析一下这个...
mac系统安装安卓系统安装教程... 亲爱的电脑迷们,你是否曾梦想过在你的Mac电脑上运行安卓系统?想象你可以在同一台设备上享受Mac的优...
国外常用安卓系统软件,国外常用... 你知道吗?在国外,安卓系统软件可是相当受欢迎的!无论是手机、平板还是智能手表,安卓系统几乎无处不在。...
小米连点安卓系统版本,探索小米... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,小米的新机又来了,安卓系统版本也跟着升级...
安卓系统怎么下载亦餐饮,一站式... 你有没有想过,在安卓手机上下载那些美味的餐饮APP,简直就像是在你的指尖上跳舞呢?没错,现在就让我带...
iphone6越狱安卓系统,体... 你有没有想过,如果你的iPhone 6也能装上安卓系统,那会是怎样的体验呢?想象你手中的经典之作,竟...
mocor5安卓系统,深度解析... 你有没有听说最近安卓系统界又出了个新花样?没错,就是那个让人眼前一亮的Mocor5安卓系统!今天,我...
共享店铺推荐安卓系统吗,便捷生... 你有没有想过,在繁忙的都市生活中,找到一个既能满足购物需求,又能节省空间的共享店铺是不是一件超级酷的...
像素怎么设置安卓系统,基于像素... 像素,这个看似微不足道的设置,却能在安卓系统中发挥出意想不到的作用。想象你手中的手机屏幕,那些细腻的...
大学支持安卓系统还是ios系统... 最近有个话题在校园里炒得火热,那就是大学里支持安卓系统还是iOS系统呢?这可不仅仅是手机的选择问题,...
荣耀7安卓系统多少,荣耀7安卓... 你有没有注意到,你的荣耀7手机最近有点儿慢吞吞的?别急,别急,让我来告诉你,这款手机的安卓系统版本是...
安卓简单图书借阅系统,基于安卓... 你知道吗?在这个信息爆炸的时代,想要找到一本好书,有时候还真是个头疼的问题。不过,别急,今天我要给你...
安卓11看不了系统文件,揭秘文... 最近是不是发现你的安卓手机升级到了安卓11系统,结果发现系统文件竟然看不到了?别急,这可不是什么怪事...
安卓系统默认4位密码,揭秘默认... 你有没有发现,手机里的安卓系统默认的4位密码,简直就像是个小秘密,既简单又有点儿神秘呢?今天,就让我...