Largest Divisible Subset LeetCode solution in Rust
1impl Solution {2pub fn largest_divisible_subset(nums: Vec<i32>) -> Vec<i32> {3if nums.len() <= 1 {4return nums;5}6let mut nums: Vec<i32> = nums;7nums.sort();8let mut ans: Vec<(usize, i32)> = Vec::new();910let mut max: i32 = 0;11let mut idx_ans: usize = 0;1213for i in 0..nums.len() {14ans.push((i, 1));15for j in 0..i {16if nums[i] % nums[j] == 0 && ans[i].1 <= ans[j].1 {17ans[i].0 = j;18ans[i].1 = ans[j].1 + 1;1920if max < ans[i].1 {21max = ans[i].1;22idx_ans = i;23}24}25}26}2728let mut result: Vec<i32> = Vec::new();29let mut idx = idx_ans;3031while ans[idx].1 > 1 {32result.push(nums[idx]);33idx = ans[idx].0;34}35result.push(nums[idx]);3637result38}39}