这个递归的代码为什么占用这么大的内存呢
查看原帖
这个递归的代码为什么占用这么大的内存呢
285961
魏老师楼主2024/5/31 15:38

#include<bits/stdc++.h>
using namespace std;
int n,m,q,a[1000010];
int f(int x,int l,int r)
{
	if(l==r) return r;
	else if(l<r)
	{
		int mid=(r+l)/2;
		if (a[mid]>=x)   f(x,l,mid);
		else  f(x,mid+1,r);
	}
}
int main()
{
	scanf("%d %d",&n,&m);  
	for (int i=1;i<=n;i++)
	    scanf("%d",&a[i]); 
	for (int i=1;i<=m;i++)
	{
		scanf("%d",&q);
		int ans=f(q,1,n);
		if(a[ans]==q) cout<<ans<<" ";
		else cout<<-1<<" ";
	}
	return 0;
}
2024/5/31 15:38
加载中...