From ece3af51495c92841b8da97783c331935647775a Mon Sep 17 00:00:00 2001 From: li-chx Date: Wed, 12 Aug 2026 11:32:37 +0800 Subject: [PATCH] =?UTF-8?q?2996.=20=E5=A4=A7=E4=BA=8E=E7=AD=89=E4=BA=8E?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E5=89=8D=E7=BC=80=E5=92=8C=E7=9A=84=E6=9C=80?= =?UTF-8?q?=E5=B0=8F=E7=BC=BA=E5=A4=B1=E6=95=B4=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main.rs b/src/main.rs index e6fc312..2e9f85f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,26 +1,26 @@ -use std::collections::HashMap; +use std::collections::HashSet; mod arr; struct Solution {} impl Solution { - pub fn max_subarray_length(nums: Vec, k: i32) -> i32 { - let mut mp = HashMap::new(); - let mut l: i64 = -1; - let mut ans = 0; - for r in 0..nums.len() { - *mp.entry(nums[r]).or_insert(0) += 1; - while *mp.get(&nums[r]).unwrap() > k { - l += 1; - *mp.get_mut(&nums[l as usize]).unwrap() -= 1 + pub fn missing_integer(nums: Vec) -> i32 { + let mut st = nums.clone().into_iter().collect::>(); + let mut sum = nums[0]; + for i in 1 .. nums.len() { + if nums[i] != nums[i-1] + 1 { + break; } - ans = ans.max(r as i32 - l as i32); + sum += nums[i]; } - ans + while st.contains(&sum) { + sum += 1; + } + sum } } fn main() { println!( "{:?}", - Solution::max_subarray_length(vec![1, 2, 3, 1, 2, 3, 1, 2], 2) + Solution::missing_integer(vec![14,9,6,9,7,9,10,4,9,9,4,4]) ); }