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)
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
Reference in New Issue
Block a user