版权声明:本文为博主原创文章,未经博主允许不得转载。 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.