How to create a vector from a 2D array that only includes the non-zero elements in Rust

1 Answer

0 votes
fn main() {
    let array = [
        [1, 0, 8, 2],
        [0, 7, 3, 0],
        [9, 0, 0, 4],
    ];

    let mut non_zero_list = Vec::new();

    // Collect non-zero elements
    for row in &array {
        for &element in row {
            if element != 0 {
                non_zero_list.push(element);
            }
        }
    }

    // Convert the list back to a one-dimensional vector
    let result_vec: Vec<i32> = non_zero_list.iter().cloned().collect();

    for element in result_vec {
        print!("{} ", element);
    }
}


     
/*
run:
  
1 8 2 7 3 9 4 
    
*/

 



answered Feb 13, 2025 by avibootz
...