Improved execution speed for task No 239

This commit is contained in:
2022-02-09 00:45:18 +02:00
parent 42408c50b1
commit 096546af60

View File

@@ -39,8 +39,20 @@ func (w *Window) Max(prevMax WindowMaximum) WindowMaximum {
return maxBruteForce(w.nums, w.begin, w.end)
}
if (w.nums[w.begin-1] == w.nums[w.begin]) && (w.nums[w.end-1] == w.nums[w.end]) {
return prevMax
if w.nums[w.begin-1] == w.nums[w.begin] {
if w.nums[w.end-1] == w.nums[w.end] {
return prevMax
} else {
if w.nums[w.end] >= prevMax.value {
return WindowMaximum{value: w.nums[w.end], valid: true, index: w.end}
}
}
} else {
if w.nums[w.end-1] == w.nums[w.end] {
if w.nums[w.begin] >= prevMax.value {
return WindowMaximum{value: w.nums[w.begin], valid: true, index: w.begin}
}
}
}
if !w.InWindow(prevMax.index) {