Improved execution speed for task No 239
This commit is contained in:
@@ -39,8 +39,20 @@ func (w *Window) Max(prevMax WindowMaximum) WindowMaximum {
|
|||||||
return maxBruteForce(w.nums, w.begin, w.end)
|
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]) {
|
if w.nums[w.begin-1] == w.nums[w.begin] {
|
||||||
return prevMax
|
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) {
|
if !w.InWindow(prevMax.index) {
|
||||||
|
|||||||
Reference in New Issue
Block a user