diff --git a/src/main.rs b/src/main.rs index 458dfb5..9b2d341 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,28 +2,17 @@ mod arr; struct Solution {} impl Solution { - pub fn triangle_number(nums: Vec) -> i32 { - if nums.len() < 3 { - return 0; - } - let mut nums = nums; - nums.sort(); - let mut ans = 0; - for i in 0..nums.len() - 2 { - let mut r = i + 2; - for l in i + 1..nums.len() - 1 { - while r < nums.len() && nums[i] + nums[l] > nums[r] { - r += 1; - } - - ans += ((r - l) as i32 - 1).max(0); + pub fn triangular_sum(mut nums: Vec) -> i32 { + for i in 0.. nums.len() - 1 { + for j in 0..nums.len() - 1 - i { + nums[j] = (nums[j] + nums[j + 1]) % 10; } } - ans + nums[0] } } fn main() { - let arr = vec![7, 0, 0, 0]; - println!("{}", Solution::triangle_number(arr)); + let arr = vec![1,2,3,4,5]; + println!("{}", Solution::triangular_sum(arr)); }