Slices are one of Rust's most versatile and powerful tools for working with collections of data. A slice is a view into a contiguous sequence of elements in a collection, allowing you to operate on a subset of the data without needing to copy it.
In this challenge, you will work with slices to find the largest number in a given range of a slice. Slices allow you to efficiently access and process subsets of arrays and vectors. Your task is to write a function that handles edge cases like empty slices and returns the largest number where possible.
Implement the function find_largest_in_slice(slice: &[i32]) -> Option<i32>
that takes an immutable slice of integers and returns the largest integer in the slice. If the slice is empty, return None
.
Slices provide various methods that can help you work efficiently, such as iterators and bounds checking.
Some(i32)
with the largest element in the slice if the slice is not empty.None
.If you're stuck, here are some hints to help you solve the challenge:
.iter()
method on slices to create an iterator over the elements..max()
method provided by iterators to find the largest value..max()
, remember to handle the Option
it returns, as an empty iterator will yield None
.pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... let b = slice.iter().max(); b.copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice.iter().copied().reduce(|a, b| a.max(b)) }// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { return None; } let mut max = slice[0]; for &i in slice{ if i > max { max = i } } Some(max)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... return slice.iter().max().copied();}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.is_empty() {return None;} let mut res = slice[0]; for &i in slice{ if i > res {res = i;} } Some(res)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { None } else { let mut ans:i32 = slice[0]; for n in slice { if &ans < n { ans = *n; } } Some(ans) }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { if slice.is_empty() { return None; } Some(slice.iter().fold(std::i32::MIN, |acc, x| if *x > acc {*x} else {acc} ))}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { let max = slice.iter().max(); max.copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here.. slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.iter().len() > 0 { Some(*slice.iter().max().unwrap()) } else { None }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.is_empty(){ return None } let mut large_num=&slice[0]; for i in &slice[1..]{ if *i>*large_num{ large_num=i; } } Some(*large_num)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { return None } let mut max: i32 = slice[0]; for i in slice { if *i > max { max = *i ; } } Some(max)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { slice.iter().max_by(|x, y| x.cmp(y)).copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { return None; } let mut largest = slice[0]; for i in slice.iter() { if *i > largest { largest = *i } } Some(largest)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here...Implement the function find_largest_in_slice(slice: &[i32]) -> Option<i32> that takes an immutable slice of integers and returns the largest integer in the slice. If the slice is empty, return None.slice.iter().max().copied()// Slices provide various methods that can help you work efficiently, such as iterators and bounds checking.}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { if slice.len() == 0 { return None; } let mut l = slice[0]; for i in slice[1..].iter() { if *i > l { l = *i } } Some(l)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { if let Some(&max) = slice.iter().max() { Some(max) } else { None }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.is_empty() { return None; } let mut largest_num = &slice[0]; for i in &slice[1..] { if *i > *largest_num { largest_num = i; } } Some(*largest_num)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { return None } else { let mut init: i32 = slice[0]; for next in slice.iter() { if init < *next { init = *next } } Some(init) }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice .iter() .max() .copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { None } else { let mut largest = slice[0]; for &num in slice { if num > largest { largest = num; } } Some(largest) }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { None } else { let mut m : i32 = slice[0]; for v in slice.iter() { if m<*v { m = *v; } } Some(m) }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { return None; } let mut largest = slice[0]; for &num in slice { if num > largest { largest = num; } } Some(largest)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { return None; } let mut largest = slice[0]; for &num in slice { if num > largest { largest = num; } } Some(largest)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { slice.iter().max().cloned()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { match slice.iter().max() { Some(value) => Some(*value), None => None }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.len() == 0 { return None; }; let mut largest: i32 = slice[0]; for item in slice { if *item > largest { largest = *item; } } return Some(largest); }// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { if slice.len() == 0 { None } else { let mut largest_in_slice = slice[0]; for number in slice { if *number > largest_in_slice { largest_in_slice = *number } } Some(largest_in_slice) }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... match slice.iter().max() { Some(value) => Some(*value), None => None }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... let result = slice.iter().max(); match result { Some(num) => Some(*num), None => None }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { slice.iter().max().map(|&v| v)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { if slice.len() == 0 { return None } let mut max_number = slice[0]; for &num in slice.iter() { if num > max_number { max_number = num } } return Some(max_number)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... let counter = slice.iter().max(); match counter { Some(value) => Some(*value), None => None }}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... let largest_number: Option<i32> = slice.iter().max().copied(); largest_number}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { if slice.len() == 0 { return None; } slice.iter().max().map(|&x| x)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { if slice.len() == 0 { return None } let mut value: i32 = slice[0]; for num in slice { if *num > value { value = *num; } } Some(value)}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... // if slice.len() == 0 { // return None; // } // let mut max = slice[0]; // for n in slice { // if *n > max { // max = *n; // } // } // return Some(max); return slice.iter().max().copied()}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { if slice.len() == 0 { return None; } let mut largest_value = slice[0]; for v in slice.iter() { if *v > largest_value { largest_value = *v; } } return Some(largest_value);}// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}
pub fn find_largest_in_slice(slice: &[i32]) -> Option<i32> { // Your code here... if slice.is_empty(){ return None } return slice.iter().max().copied() }// Example Usagepub fn main() { let numbers = [1, 3, 7, 2, 5]; assert_eq!(find_largest_in_slice(&numbers), Some(7)); let empty: [i32; 0] = []; assert_eq!(find_largest_in_slice(&empty), None); let single_element = [42]; assert_eq!(find_largest_in_slice(&single_element), Some(42));}