1. 程式人生 > >基於遞迴尋找陣列中的最大數字

基於遞迴尋找陣列中的最大數字

問題描述:尋找陣列中的最大數字:

# 尋找陣列中的最大值,這個寫法真的可以啊
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.