解题思路:这道题是求数组的最小值,其实也可以用sort函数排序直接求,也可以用递归,我用的递归,而且用的办法挺简单的。将数组从中间分成两个,然后求俩个数组的最小值,然后比较两个数组的最小值,取最小值,返回就可以。
解题过程:给定一个vector<int>num数组,首先判断数组长度,若长度为一,直接返回即可;否则进入递归,将num分为a,b,两个数组,求a的最小值min,b的最小值m,然后比较min和m的值那个最小求最小值。
代码实现:int findMin(vector<int>&num) {
int mid,l=num.size();
if(l==1) return num[0];
else{
mid=l/2;
vector<int>a,b;
vector<int>::iterator ite;
ite=num.begin();
a.assign(num.begin(),ite+mid);
b.assign(ite+mid,num.end());
int min,m;
min=findMin(a);
m=findMin(b);
if(min>m) min=m;
return min;
}
}
个人总结:这道题很简单,主要思路会了就行了。
注意事项:最后要比较min和m的值,而且要有返回值。