diff --git a/rust/easy/0455_assing_cookies.rs b/rust/easy/0455_assing_cookies.rs new file mode 100644 index 0000000..80948c4 --- /dev/null +++ b/rust/easy/0455_assing_cookies.rs @@ -0,0 +1,18 @@ +impl Solution { + pub fn find_content_children(g: Vec, s: Vec) -> i32 { + let mut g = g; + let mut s = s; + g.sort_unstable_by(|a, b| b.cmp(&a)); + s.sort_unstable_by(|a, b| b.cmp(&a)); + let mut answer = 0; + let (mut i, mut j) = (0, 0); + while i < g.len() && j < s.len() { + if s[j] >= g[i] { + answer += 1; + j += 1; + } + i += 1; + } + answer + } +} diff --git a/rust/medium/0869_reordered_power_of_2.rs b/rust/medium/0869_reordered_power_of_2.rs new file mode 100644 index 0000000..6cb4117 --- /dev/null +++ b/rust/medium/0869_reordered_power_of_2.rs @@ -0,0 +1,21 @@ +use std::collections::HashSet; + +impl Solution { + pub fn reordered_power_of2(n: i32) -> bool { + fn extract_digits(mut number: i32) -> [u8; 10] { + let mut digits = [0; 10]; + while number > 0 { + digits[number as usize % 10] += 1; + number /= 10; + } + digits + } + let mut set = HashSet::new(); + let mut curr = 1; + for i in 0..30 { + set.insert(extract_digits(curr)); + curr = curr << 1; + } + set.contains(&extract_digits(n)) + } +} diff --git a/rust/medium/2438_range_product_queries_of_powers.rs b/rust/medium/2438_range_product_queries_of_powers.rs new file mode 100644 index 0000000..de4c397 --- /dev/null +++ b/rust/medium/2438_range_product_queries_of_powers.rs @@ -0,0 +1,18 @@ +impl Solution { + pub fn product_queries(n: i32, queries: Vec>) -> Vec { + const MODULO: i64 = 1_000_000_007; + let mut powers = vec![]; + for i in 0..32 { + if 1 & (n >> i) == 1 { + powers.push(2_i32.pow(i as u32)); + } + } + queries.iter().map(|q| { + let mut product = 1i64; + for i in q[0] as usize..=q[1] as usize { + product = (product * powers[i] as i64) % MODULO; + } + product as i32 + }).collect() + } +}