feat: 611_valid_triangle_number

This commit is contained in:
SquidSpirit 2025-09-26 19:12:59 +08:00
parent 493b9c50c5
commit 6a51947dcf
3 changed files with 40 additions and 0 deletions

7
611_valid_triangle_number/Cargo.lock generated Normal file
View File

@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "valid_triangle_number"
version = "0.1.0"

View File

@ -0,0 +1,6 @@
[package]
name = "valid_triangle_number"
version = "0.1.0"
edition = "2024"
[dependencies]

View File

@ -0,0 +1,27 @@
pub struct Solution;
impl Solution {
pub fn triangle_number(mut nums: Vec<i32>) -> i32 {
let mut count = 0;
nums.sort();
for (c_index, &c) in nums.iter().enumerate().skip(2) {
let mut a_index = 0;
let mut b_index = c_index - 1;
while a_index < b_index {
let a = nums[a_index];
let b = nums[b_index];
if a + b > c {
count += (b_index - a_index) as i32;
b_index -= 1;
} else {
a_index += 1;
}
}
}
count
}
}