Skip to content

Commit 8aed66a

Browse files
add 2874
1 parent 26801a3 commit 8aed66a

File tree

2 files changed

+30
-10
lines changed

2 files changed

+30
-10
lines changed

contest/src/main/java/com/github/contest/Execute.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.github.contest
22

33

4-
import com.github.contest.graph.mostProfitablePath
4+
import com.github.contest.array.maximumTripletValue
5+
import com.github.contest.array.maximumTripletValue
6+
57
import java.util.TreeMap
68

79

@@ -11,10 +13,11 @@ import java.util.TreeMap
1113

1214
fun main() {
1315

14-
// val edges = arrayOf(intArrayOf(0, 1), intArrayOf(1, 2), intArrayOf(1, 3), intArrayOf(3, 4))
15-
// mostProfitablePath(edges, 3, intArrayOf(-2, 4, 2, -4, 6)).also { println(it) }
16-
//
17-
testing()
16+
maximumTripletValue(
17+
intArrayOf(
18+
15, 3, 3, 18, 19, 13, 7, 5, 18, 1, 8, 5
19+
)
20+
).also { println(it) }
1821

1922
}
2023

@@ -28,10 +31,7 @@ fun testing() {
2831

2932
fun generateTesting() {
3033
val sequence = sequenceOf(3, 5, 6, 7, 7, 8, 8, 8, 9, 3)
31-
sequence.map { it * 2 }
32-
.filter { it > 3 }
33-
.filter { it > 2 }
34-
.constrainOnce()
34+
sequence.map { it * 2 }.filter { it > 3 }.filter { it > 2 }.constrainOnce()
3535

3636

3737
}

contest/src/main/java/com/github/contest/array/ArrayLeetcode.kt

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.contest.array
22

3+
34
/**
45
* 1800. Maximum Ascending Subarray Sum
56
*/
@@ -144,7 +145,7 @@ fun mergeArrays(nums1: Array<IntArray>, nums2: Array<IntArray>): Array<IntArray>
144145
* 2873. Maximum Value of an Ordered Triplet I
145146
*/
146147

147-
fun maximumTripletValue(nums: IntArray): Long {
148+
fun maximumTripletValueI(nums: IntArray): Long {
148149
var max = 0L
149150
for (i in nums.indices) {
150151
for (j in i + 1 until nums.size) {
@@ -158,6 +159,25 @@ fun maximumTripletValue(nums: IntArray): Long {
158159
}
159160

160161

162+
/**
163+
* 2874. Maximum Value of an Ordered Triplet II
164+
*/
165+
166+
167+
fun maximumTripletValue(nums: IntArray): Long {
168+
var maxi = Int.MIN_VALUE
169+
var diff = 0
170+
var res = 0L
171+
172+
for (i in nums.indices) {
173+
maxi = maxOf(maxi, nums[i])
174+
if (i >= 2) res = maxOf(res, (diff.toLong() * nums[i]))
175+
if (i >= 1) diff = maxOf(diff, (maxi - nums[i]))
176+
}
177+
178+
return res
179+
}
180+
161181

162182

163183

0 commit comments

Comments
 (0)