Minimum Cost Tree From Leaf Values LeetCode solution in Rust

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

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0