基于递归寻找数组中的最大数字

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011240016/article/details/82750666

问题描述:寻找数组中的最大数字:

# 寻找数组中的最大值,这个写法真的可以啊
def find_max(arr):

	# 先找基线条件
	if len(arr) == 0:
		return -1
	if len(arr) == 1:
		return arr[0]

	# 缩小问题规模
	else:
		return max(arr[0],find_max(arr[1:]))
    
arr = [1,4,2,3,7,9,11]
res = find_max(arr)
print(res)

这个用分而治之真的可以哦!

记住两个基本要求:

  • 基线条件
  • 缩小问题规模

对于数组而言,一般基线条件就是为空数组和数组只有一个元素的情况。

然后重点关注如何缩小问题规模:思想是,拿出第一个元素,然后剩下的元素再去递归,这样问题就规模小了一点哦~~

只有自己能够运用这种思维方法来实现代码,才算真的理解了递归,并掌握了递归。

END.

猜你喜欢

转载自blog.csdn.net/u011240016/article/details/82750666
今日推荐