1218. Longest Arithmetic Subsequence of Given Difference

Problem Statement


use std::collections::HashMap;
use std::cmp;

impl Solution {
pub fn longest_subsequence(arr: Vec<i32>, difference: i32) -> i32 {
let (mut ans, mut map) = (0, HashMap::new());
for i in arr {
let val = cmp::max(*map.entry(i).or_insert(0),
*map.entry(i - difference).or_insert(0) + 1);
map.insert(i, val);
ans = cmp::max(ans, *map.entry(i).or_insert(0));
}
return ans;
}
}