package recursion
import (
"fmt"
"testing"
)
func max(a,b int) int {
if a < b {
return b
}
return a
}
func process(array []int, left, right int) int {
if left == right {
return array[left]
}
mid := left + (right - left) >> 1
leftMax := process(array, left, mid)
rightMax := process(array,mid + 1, right)
return max(leftMax,rightMax)
}
func TestGetArrayMaxValue(t *testing.T) { // O(n)
arr := []int{1,3,4,12,3,2,0,-1,999,3290,9}
fmt.Println(process(arr,0, len(arr) -1 ))
}
/*
思维脑图
[ 4,6,3,7 ]
f(0,3)
6 / \ 7
f(0,1) f(2,3)
4 / \ 6 3 / \ 7
f(0,0) f(1,1) f(2,2) f(3,3)
*/
递归——求数组最大值
于 2021-10-22 14:50:10 首次发布