判定一个数组是否是单调的,可以用如下函数.
public static boolean monotonic (int []a)
{
int n=a.length,i;
for(i=0;i<n-1;i++)
if(a[i+1]<a[i]) break;
if(i==n-1) return false;
for(;i<n-1;i++)
if(a[i+1]<a[i]) return false;
return true;
}
如果判定一个数组是双调,应如何改?比如(1,4,,7,9,3,2,1,);(6,5,4,3,5,6).
public static boolean monotonic (int []a)
{
int n=a.length,i;
for(i=0;i<n-1;i++)
if(a[i+1]<a[i]) break;
if(i==n-1) return false;
for(;i<n-1;i++)
if(a[i+1]<a[i]) return false;
return true;
}
如果判定一个数组是双调,应如何改?比如(1,4,,7,9,3,2,1,);(6,5,4,3,5,6).
public static boolean monotonic (int []a)
{
int flag=1;
int n=a.length,i;
for(i=1;i<n-1;i++)
if((a[i+1]-a[i])*(a[i]-a[i-1])<0) flag--;
if(flag<0) return false;
return true;
}//flag=0可以判断单调。=1双调;=2三调........ 符合你要求了8?