problems: add „Longest Increasing Subsequence“

Signed-off-by: Matej Focko <mfocko@redhat.com>
This commit is contained in:
Matej Focko 2022-08-08 21:58:30 +02:00
parent aba5f5f595
commit 33dbe9bc56
Signed by: mfocko
GPG key ID: 7C47D46246790496

View file

@ -0,0 +1,18 @@
use std::cmp::max;
impl Solution {
pub fn length_of_lis(nums: Vec<i32>) -> i32 {
let mut dp = Vec::<i32>::new();
dp.resize(nums.len(), 1);
for i in 1..nums.len() {
for j in 0..i {
if nums[i] > nums[j] {
dp[i] = max(dp[i], dp[j] + 1);
}
}
}
*dp.iter().max().unwrap()
}
}