20241227 finished.
This commit is contained in:
		| @@ -394,3 +394,5 @@ mod p1705_maximum_number_of_eaten_apples; | ||||
| mod p3218_minimum_cost_for_cutting_cake_i; | ||||
|  | ||||
| mod p3083_existence_of_a_substring_in_a_string_and_its_reverse; | ||||
|  | ||||
| mod p3159_find_occurrences_of_an_element_in_an_array; | ||||
|   | ||||
| @@ -0,0 +1,49 @@ | ||||
| /** | ||||
|  * [3159] Find Occurrences of an Element in an Array | ||||
|  */ | ||||
| pub struct Solution {} | ||||
|  | ||||
| // submission codes start here | ||||
|  | ||||
| impl Solution { | ||||
|     pub fn occurrences_of_element(nums: Vec<i32>, queries: Vec<i32>, x: i32) -> Vec<i32> { | ||||
|         let x_pos: Vec<usize> = nums | ||||
|             .iter() | ||||
|             .enumerate() | ||||
|             .filter_map(|(i, v)| if *v == x { Some(i) } else { None }) | ||||
|             .collect(); | ||||
|  | ||||
|         let result = queries | ||||
|             .into_iter() | ||||
|             .map(|x| { | ||||
|                 let x = x as usize - 1; | ||||
|                 if x >= x_pos.len() { | ||||
|                     -1 | ||||
|                 } else { | ||||
|                     x_pos[x] as i32 | ||||
|                 } | ||||
|             }) | ||||
|             .collect(); | ||||
|  | ||||
|         result | ||||
|     } | ||||
| } | ||||
|  | ||||
| // submission codes end | ||||
|  | ||||
| #[cfg(test)] | ||||
| mod tests { | ||||
|     use super::*; | ||||
|  | ||||
|     #[test] | ||||
|     fn test_3159() { | ||||
|         assert_eq!( | ||||
|             vec![0, -1, 2, -1], | ||||
|             Solution::occurrences_of_element(vec![1, 3, 1, 7], vec![1, 3, 2, 4], 1) | ||||
|         ); | ||||
|         assert_eq!( | ||||
|             vec![-1], | ||||
|             Solution::occurrences_of_element(vec![1, 2, 3], vec![10], 5) | ||||
|         ); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user