使用递归完成找出一维数组中的最大值

如果是两个数,我们很容易就清楚,哪个是最大的,哪个是最小的 ,因此基准条件就是 数组中剩下两个元素

递归条件:使用函数本身得到 暂时的最大值

python

def findMax(l):
	if len(l) == 0:            ## 基准条件 
		return l[0] if l[0] > l[1] else l[1]
	max_temp = findMax(l[1:])  ## 递归条件,完成更新
	return l[0] if l[0] > max_temp else max_temp
findMax([1,2,3,4,10])

go

func findMax(arr []int) int {
	if len(arr) == 2 {
		if arr[0] > arr[1] {
			return arr[0]
		} else {
			return arr[1]
		}
	} else {
		max_temp := findMax(arr[1:])
		if arr[0] > max_temp {
			return arr[0]
		} else {
			return max_temp
		}
	}
}

func main() {
	arr := []int{1, 2, 3, 4, 5, 10}
	fmt.Println("findMax : ", findMax(arr))
}

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐