#469
Medium Algorithms Convex polygon
Array Math Geometry
40.2% acceptance
Mar 31, 2026
103
242
No description available.
Solution
Rust
Time O(n)
Space O(1)
impl Solution {
pub fn is_convex(points: Vec<Vec<i32>>) -> bool {
let n = points.len();
let mut last_sign = 0i64;
for i in 0..n {
let p1 = &points[i];
let p2 = &points[(i + 1) % n];
let p3 = &points[(i + 2) % n];
let dx1 = (p2[0] - p1[0]) as i64;
let dy1 = (p2[1] - p1[1]) as i64;
let dx2 = (p3[0] - p2[0]) as i64;
let dy2 = (p3[1] - p2[1]) as i64;
let cross = dx1 * dy2 - dy1 * dx2;
if cross != 0 {
if last_sign == 0 {
last_sign = cross.signum();
} else if cross.signum() != last_sign {
return false;
}
}
}
true
}
}