Skip to content

Commit c83cb6b

Browse files
committed
feat: add solutions to lc problem: No.1218
No.1218.Longest Arithmetic Subsequence of Given Difference
1 parent fa0114f commit c83cb6b

File tree

6 files changed

+153
-2
lines changed

6 files changed

+153
-2
lines changed

solution/1200-1299/1218.Longest Arithmetic Subsequence of Given Difference/README.md

+54-1
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,68 @@
5656
<!-- 这里可写当前语言的特殊实现逻辑 -->
5757

5858
```python
59-
59+
class Solution:
60+
def longestSubsequence(self, arr: List[int], difference: int) -> int:
61+
dp, ans = defaultdict(int), 1
62+
for num in arr:
63+
dp[num] = dp[num - difference] + 1
64+
ans = max(ans, dp[num])
65+
return ans
6066
```
6167

6268
### **Java**
6369

6470
<!-- 这里可写当前语言的特殊实现逻辑 -->
6571

6672
```java
73+
class Solution {
74+
public int longestSubsequence(int[] arr, int difference) {
75+
Map<Integer, Integer> dp = new HashMap<>();
76+
int ans = 1;
77+
for (int num : arr) {
78+
dp.put(num, dp.getOrDefault(num - difference, 0) + 1);
79+
ans = Math.max(ans, dp.get(num));
80+
}
81+
return ans;
82+
}
83+
}
84+
```
85+
86+
### **C++**
87+
88+
```cpp
89+
class Solution {
90+
public:
91+
int longestSubsequence(vector<int>& arr, int difference) {
92+
unordered_map<int, int> dp;
93+
int ans = 1;
94+
for (int num : arr) {
95+
dp[num] = dp[num - difference] + 1;
96+
ans = max(ans, dp[num]);
97+
}
98+
return ans;
99+
}
100+
};
101+
```
67102
103+
### **Go**
104+
105+
```go
106+
func longestSubsequence(arr []int, difference int) int {
107+
dp, ans := make(map[int]int), 1
108+
for _, num := range arr {
109+
dp[num] = dp[num-difference] + 1
110+
ans = max(ans, dp[num])
111+
}
112+
return ans
113+
}
114+
115+
func max(a, b int) int {
116+
if a > b {
117+
return a
118+
}
119+
return b
120+
}
68121
```
69122

70123
### **...**

solution/1200-1299/1218.Longest Arithmetic Subsequence of Given Difference/README_EN.md

+54-1
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,66 @@
7878
### **Python3**
7979

8080
```python
81-
81+
class Solution:
82+
def longestSubsequence(self, arr: List[int], difference: int) -> int:
83+
dp, ans = defaultdict(int), 1
84+
for num in arr:
85+
dp[num] = dp[num - difference] + 1
86+
ans = max(ans, dp[num])
87+
return ans
8288
```
8389

8490
### **Java**
8591

8692
```java
93+
class Solution {
94+
public int longestSubsequence(int[] arr, int difference) {
95+
Map<Integer, Integer> dp = new HashMap<>();
96+
int ans = 1;
97+
for (int num : arr) {
98+
dp.put(num, dp.getOrDefault(num - difference, 0) + 1);
99+
ans = Math.max(ans, dp.get(num));
100+
}
101+
return ans;
102+
}
103+
}
104+
```
105+
106+
### **C++**
107+
108+
```cpp
109+
class Solution {
110+
public:
111+
int longestSubsequence(vector<int>& arr, int difference) {
112+
unordered_map<int, int> dp;
113+
int ans = 1;
114+
for (int num : arr) {
115+
dp[num] = dp[num - difference] + 1;
116+
ans = max(ans, dp[num]);
117+
}
118+
return ans;
119+
}
120+
};
121+
```
87122
123+
### **Go**
124+
125+
```go
126+
func longestSubsequence(arr []int, difference int) int {
127+
dp, ans := make(map[int]int), 1
128+
for _, num := range arr {
129+
dp[num] = dp[num-difference] + 1
130+
ans = max(ans, dp[num])
131+
}
132+
return ans
133+
}
134+
135+
func max(a, b int) int {
136+
if a > b {
137+
return a
138+
}
139+
return b
140+
}
88141
```
89142

90143
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution {
2+
public:
3+
int longestSubsequence(vector<int>& arr, int difference) {
4+
unordered_map<int, int> dp;
5+
int ans = 1;
6+
for (int num : arr) {
7+
dp[num] = dp[num - difference] + 1;
8+
ans = max(ans, dp[num]);
9+
}
10+
return ans;
11+
}
12+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
func longestSubsequence(arr []int, difference int) int {
2+
dp, ans := make(map[int]int), 1
3+
for _, num := range arr {
4+
dp[num] = dp[num-difference] + 1
5+
ans = max(ans, dp[num])
6+
}
7+
return ans
8+
}
9+
10+
func max(a, b int) int {
11+
if a > b {
12+
return a
13+
}
14+
return b
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution {
2+
public int longestSubsequence(int[] arr, int difference) {
3+
Map<Integer, Integer> dp = new HashMap<>();
4+
int ans = 1;
5+
for (int num : arr) {
6+
dp.put(num, dp.getOrDefault(num - difference, 0) + 1);
7+
ans = Math.max(ans, dp.get(num));
8+
}
9+
return ans;
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Solution:
2+
def longestSubsequence(self, arr: List[int], difference: int) -> int:
3+
dp, ans = defaultdict(int), 1
4+
for num in arr:
5+
dp[num] = dp[num - difference] + 1
6+
ans = max(ans, dp[num])
7+
return ans

0 commit comments

Comments
 (0)