面试宝典中用C++实现循环队列

清楚原理后很简单



#include
using namespace std;
int abs(int a)
{
	return (a>=0)?a:-a;
}
int max(int a,int b)
{
	return (abs(a)>=abs(b))?abs(a):abs(b);
}
int foo(int x,int y)
{    //int u;
    int a=abs(x);
	int b=abs(y);
	int t=max(a,b);
	int v=(2*t-1)*(2*t-1);
	int u=v;
	if(y==-t)
	{
		u=u+7*t+x;
	}
	else if(x==t)
	{
		u=u+t+y;
	}
	else if(y==t)
	{
		u=u+3*t-x;
	}
	else
	{
		u=u+5*t-y;
	}
	return u;
}
int main()
{  // cout<

你可能感兴趣的:(算法导论)