Minimum Cost Tree From Leaf Values LeetCode solution in Rust
1use std::cmp::min;2impl Solution {3pub fn mct_from_leaf_values(mut arr: Vec<i32>) -> i32 {4let n = arr.len();5let mut A: Vec<i32> = vec![];6A.push(std::i32::MAX);7A.append(&mut arr);8A.push(std::i32::MAX);9let mut res = 0;10while A.len() > 3 {11let min_index = min_index(&A);12res += min(A[min_index - 1], A[min_index + 1]) * A[min_index];13A.remove(min_index);14}15return res;16}17}18pub fn min_index(array: &Vec<i32>) -> usize {19let mut i = 0;20for (j, &value) in array.iter().enumerate() {21if value < array[i] {22i = j;23}24}25return i;26}