Skip to content

Commit 68b619e

Browse files
committed
solve: 1218. Longest Arithmetic Subsequence of Given Difference in rust & golang
Signed-off-by: rajput-hemant <[email protected]>
1 parent 21e97e8 commit 68b619e

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package main
2+
3+
func longestSubsequence(arr []int, difference int) int {
4+
dp := make(map[int]int)
5+
6+
for _, v := range arr {
7+
dp[v] = dp[v-difference] + 1
8+
}
9+
10+
max := 0
11+
12+
for _, v := range dp {
13+
if v > max {
14+
max = v
15+
}
16+
}
17+
18+
return max
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
impl Solution {
2+
pub fn longest_subsequence(arr: Vec<i32>, difference: i32) -> i32 {
3+
*arr.iter()
4+
.fold(HashMap::new(), |mut map, &i| {
5+
map.insert(i, map.get(&(i - difference)).unwrap_or(&0) + 1);
6+
map
7+
})
8+
.values()
9+
.max()
10+
.unwrap()
11+
}
12+
}

0 commit comments

Comments
 (0)