这个题目其实和那个左边减去右边的差最大那个题目类似,只是这里要多加几个判断,代码如下:
// maxAndmin.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int getMax(int a[],int len)
{
int max=a[0];
int maxDiff=0;
int diff=a[0]-a[1];
for (int i=2;i<len;i++)
{
if (a[i-1]>max)
{
max=a[i-1];
}
diff=max-a[i];
if (diff>maxDiff)
{
maxDiff=diff;
}
}
return maxDiff;
}
int getMin(int a[],int len)
{
int min=a[0];
int diff=a[0]-a[1];
if(diff<0)
{
diff=-diff;
}
int minDiff=diff;
for (int i=2;i<len;i++)
{
if (a[i-1]<abs(min))
{
min=a[i-1];
}
diff=min-a[i];
if (diff<0)
{
diff=-diff;
}
if (diff<minDiff)
{
minDiff=diff;
}
}
return minDiff;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[]={-5,-1,11,6,-2};
int len=sizeof(a)/sizeof(int);
cout<<getMin(a,len);
system("pause");
return 0;
}