Skip to content

Commit 892ae8f

Browse files
add prod variant for 1027
1 parent 9d1e085 commit 892ae8f

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

contest/src/main/java/com/github/contest/dp/DpLeetcode.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,3 +417,5 @@ fun longestArithSeqLength(nums: IntArray): Int {
417417

418418
return longest
419419
}
420+
421+

contest/src/main/java/com/github/contest/dp/DpProdVariant.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,23 @@ fun longestStrChainProdVariant(words: Array<String>): Int {
129129
dp[word] = currentChain
130130
currentChain
131131
}
132+
}
133+
134+
/**
135+
* 1027. Longest Arithmetic Subsequence
136+
* Prod Variant
137+
*/
138+
139+
fun longestArithSeqLengthProdVariant(nums: IntArray): Int {
140+
val dp = Array(nums.size) { mutableMapOf<Int, Int>() }
141+
var longest = 0
142+
143+
return (1 until nums.size).maxOf { i ->
144+
(0 until i).maxOf { j ->
145+
val diff = nums[i] - nums[j]
146+
val len = dp[j].getOrDefault(diff, 1) + 1
147+
dp[i][diff] = len
148+
len
149+
}
150+
}
132151
}

0 commit comments

Comments
 (0)