From 465899b94f07e4bfe82f9af301bfc608bea7b803 Mon Sep 17 00:00:00 2001 From: jackfiled Date: Mon, 20 Jan 2025 11:28:28 +0800 Subject: [PATCH] 20250120 finished. --- src/problem/mod.rs | 2 ++ .../p2239_find_closest_number_to_zero.rs | 34 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/problem/p2239_find_closest_number_to_zero.rs diff --git a/src/problem/mod.rs b/src/problem/mod.rs index ee87400..3c6f7e6 100644 --- a/src/problem/mod.rs +++ b/src/problem/mod.rs @@ -442,3 +442,5 @@ mod p3097_shortest_subarray_with_or_at_least_k_ii; mod p3287_find_the_maximum_sequence_value_of_array; mod p2266_count_number_of_texts; + +mod p2239_find_closest_number_to_zero; diff --git a/src/problem/p2239_find_closest_number_to_zero.rs b/src/problem/p2239_find_closest_number_to_zero.rs new file mode 100644 index 0000000..86d8622 --- /dev/null +++ b/src/problem/p2239_find_closest_number_to_zero.rs @@ -0,0 +1,34 @@ +/** + * [2239] Find Closest Number to Zero + */ +pub struct Solution {} + +// submission codes start here + +impl Solution { + pub fn find_closest_number(nums: Vec) -> i32 { + nums.into_iter().fold(i32::MAX, |acc, v| { + if v.abs() < acc.abs() { + v + } else if v.abs() == acc.abs() && v > acc { + v + } else { + acc + } + }) + } +} + +// submission codes end + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_2239() { + assert_eq!(-1, Solution::find_closest_number(vec![-1, -1])); + assert_eq!(1, Solution::find_closest_number(vec![-4, -2, 1, 4, 8])); + assert_eq!(1, Solution::find_closest_number(vec![-2, -1, 1])); + } +}