Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,945 questions

51,887 answers

573 users

How to find the second largest number in a vector with Rust

1 Answer

0 votes
fn find_second_largest(vec: &[i32]) -> Option<i32> {
    if vec.len() < 2 {
        return None; 
    }

    let mut largest = i32::MIN;
    let mut second_largest = i32::MIN;

    for &num in vec {
        if num > largest {
            second_largest = largest;
            largest = num;
        } else if num > second_largest && num < largest {
            second_largest = num;
        }
    }

    if second_largest == i32::MIN {
        None // This means all numbers are the same
    } else {
        Some(second_largest)
    }
}

fn main() {
    let vec = vec![3, 14, 4, 1, 5, 90, 2, 6, 85, 7];
    
    if let Some(second_largest) = find_second_largest(&vec) {
        println!("The second largest number is {}", second_largest);
    } else {
        println!("Not enough unique numbers to determine the second largest.");
    }
}


  
/*
run:
  
The second largest number is 85
 
*/

 



answered Jan 19, 2025 by avibootz
edited Jan 19, 2025 by avibootz
...