using the windows() iter methods is slow
This commit is contained in:
parent
e8b350b64b
commit
8bf70ff701
3 changed files with 38 additions and 3 deletions
|
@ -13,9 +13,7 @@ fn foo(nums: &mut [i32], k: i32) -> i32 {
|
|||
let mut right = nums.len() - 1;
|
||||
|
||||
while left < right {
|
||||
let lv = nums[left];
|
||||
let rv = nums[right];
|
||||
let sum = lv + rv;
|
||||
let sum = nums[left] + nums[right];
|
||||
if sum < k {
|
||||
left += 1;
|
||||
} else if sum > k {
|
||||
|
|
8
max_vowels_in_substring_k/Cargo.toml
Normal file
8
max_vowels_in_substring_k/Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "max_vowels_in_substring_k"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
29
max_vowels_in_substring_k/src/main.rs
Normal file
29
max_vowels_in_substring_k/src/main.rs
Normal file
|
@ -0,0 +1,29 @@
|
|||
fn main() {
|
||||
//dbg!(m("aennnnnnnnnnnnniii".to_string(), 4));
|
||||
//dbg!(m("abciiidef".to_string(), 3));
|
||||
dbg!(m("leetcode".to_string(), 3));
|
||||
}
|
||||
|
||||
fn m(s: String, k: i32) -> i32 {
|
||||
let mut cur: i32 = s.chars().take(k as usize).map(is_vowel).sum();
|
||||
let cur = &mut cur;
|
||||
let mut max = *cur;
|
||||
let max = &mut max;
|
||||
let add = s.chars().skip(k as usize);
|
||||
let mut sub = s.chars();
|
||||
for c in add {
|
||||
let s = sub.next().unwrap();
|
||||
*cur -= is_vowel(s);
|
||||
*cur += is_vowel(c);
|
||||
*max = *max.max(cur);
|
||||
}
|
||||
|
||||
*max
|
||||
}
|
||||
|
||||
fn is_vowel(c: char) -> i32 {
|
||||
match c {
|
||||
'e' | 'i' | 'o' | 'u' | 'a' => 1,
|
||||
_ => 0,
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue