一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。
2012-08-02 23:02
861 查看
一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。
本文没有开辟新的空间,只是进行数据的交换,并且没有使用额外的数组。
对数组中的每一个数进行验证,以确定它是否符合左边都小于它,右边都大于它的。
void main()
{
int a[]={1,2,4,3,5,7,6,8};
int i,j,left,right;
int len= sizeof(a)/sizeof(int);
for(i = 1 ;i<len-1 ;i++)
{
left =1;
for(j = 0 ;j<i ;j++)
{
if(a[i]<=a[j])
{
left = 0;
}
}
right = 1;
for(j = i+1 ;j<len ;j++)
{
if(a[i]>=a[j])
{
right = 0;
}
}
if(left ==1 &&(right ==1))
{
cout<<a[i]<<endl;
}
}
}
本文没有开辟新的空间,只是进行数据的交换,并且没有使用额外的数组。
对数组中的每一个数进行验证,以确定它是否符合左边都小于它,右边都大于它的。
void main()
{
int a[]={1,2,4,3,5,7,6,8};
int i,j,left,right;
int len= sizeof(a)/sizeof(int);
for(i = 1 ;i<len-1 ;i++)
{
left =1;
for(j = 0 ;j<i ;j++)
{
if(a[i]<=a[j])
{
left = 0;
}
}
right = 1;
for(j = i+1 ;j<len ;j++)
{
if(a[i]>=a[j])
{
right = 0;
}
}
if(left ==1 &&(right ==1))
{
cout<<a[i]<<endl;
}
}
}
相关文章推荐
- 一个int数组, 比如 array[],里面数据无任何限制,要求求出 所有这样的数array[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现
- 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。
- 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。
- 一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。
- 一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它
- 一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它
- 一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它
- 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。
- 一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它
- 在一个数组中,找出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它
- 算法题27 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。
- 百度三面:找出数组中所有这样的数,大于等于左边的所有数,小于等于右边的所有的数
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。
- 在一个int数组里查找出所有这样的数,它大于等于左侧所有数,小于等于右侧所有数。
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
- 微软等数据结构+算法面试100题(9)--在一个int 数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
- 在一个int数组里查找出所有这样的数,它大于等于左侧所有数,小于等于右侧所有数。