這個比較簡單,想清楚基線條件和遞歸條件就可以了,直接看代碼(VS直接運行):
#include<iostream> #include<vector> using namespace std; int arrayMax(int data[], int length); int main() { int arr[] = {0, 5, 1, 3, 9, 2, 6, 7, 8, 4}; int length = 10; int result; result = arrayMax(arr, length); cout << result << endl; } int arrayMax(int data[], int len) { if (len == 1) return data[0]; if (len == 2)//這一步可以不加,但是加上可以減少一層調用棧的深度 return data[0] > data[1] ? data[0] : data[1]; else { int t = data[len - 1];//把最后一位當成基准值,比較它和其他位的大小,返回大的 return t > arrayMax(data, len - 1) ? t : arrayMax(data, len - 1); } }