ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Êý¾Ý½á¹¹ÃæÊÔ´óÈ«(Ò»)
2014-11-24 02:02:06 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:947´Î
Tags£ºÊý¾Ý½á¹¹ ÃæÊÔ ´óÈ«

Êý¾Ý½á¹¹ÃæÊÔ´óÈ«
1.ÅжÏÁ´±íÊÇ·ñ´æÔÚ»·ÐÍÁ´±íÎÊÌ⣺ÅжÏÒ»¸öÁ´±íÊÇ·ñ´æÔÚ»·£¬ÀýÈçÏÂÃæÕâ¸öÁ´±í¾Í´æÔÚÒ»¸ö»·£º
ÀýÈçN1->N2->N3->N4->N5->N2¾ÍÊÇÒ»¸öÓл·µÄÁ´±í£¬»·µÄ¿ªÊ¼½áµãÊÇN5ÕâÀïÓÐÒ»¸ö±È½Ï¼òµ¥µÄ½â·¨¡£ÉèÖÃÁ½¸öÖ¸Õëp1£¬
p2¡£Ã¿´ÎÑ­»·p1ÏòÇ°×ßÒ»²½£¬p2ÏòÇ°×ßÁ½²½¡£Ö±µ½p2Åöµ½NULLÖ¸Õë»òÕßÁ½¸öÖ¸ÕëÏàµÈ½áÊøÑ­»·¡£Èç¹ûÁ½¸öÖ¸ÕëÏàµÈÔò˵
Ã÷´æÔÚ»·¡£
struct link
{
int data;
link* next;
};
bool IsLoop(link* head)
{
link* p1=head, *p2 = head;
if (head ==NULL || head->next ==NULL)
{
return false;
}
do{
p1= p1->next;
p2 = p2->next->next;
} while(p2 && p2->next && p1!=p2);
if(p1 == p2)
return true;
else
return false;
}
2,Á´±í·´×ª
µ¥ÏòÁ´±íµÄ·´×ªÊÇÒ»¸ö¾­³£±»Îʵ½µÄÒ»¸öÃæÊÔÌ⣬ҲÊÇÒ»¸ö·Ç³£»ù´¡µÄÎÊÌâ¡£±ÈÈçÒ»¸öÁ´±íÊÇÕâÑùµÄ£º 1->2->3->4->5
ͨ¹ý·´×ªºó³ÉΪ5->4->3->2->1¡£×îÈÝÒ×Ïëµ½µÄ·½·¨±éÀúÒ»±éÁ´±í£¬ÀûÓÃÒ»¸ö¸¨ÖúÖ¸Õ룬´æ´¢±éÀú¹ý³ÌÖе±Ç°Ö¸ÕëÖ¸ÏòµÄ
ÏÂÒ»¸öÔªËØ£¬È»ºó½«µ±Ç°½ÚµãÔªËصÄÖ¸Õ뷴תºó£¬ÀûÓÃÒѾ­´æ´¢µÄÖ¸ÕëÍùºóÃæ¼ÌÐø±éÀú¡£Ô´´úÂëÈçÏ£º
struct linka {
int data;
linka* next;
};
void reverse(linka*& head)
{
if(head ==NULL)
return;
linka*pre, *cur, *ne;
pre=head;
cur=head->next;
while(cur)
{
ne = cur->next;
cur->next = pre;
pre = cur;
cur = ne;
}
head->next = NULL;
head = pre;
}
»¹ÓÐÒ»ÖÖÀûÓõݹéµÄ·½·¨¡£ÕâÖÖ·½·¨µÄ»ù±¾Ë¼ÏëÊÇÔÚ·´×ªµ±Ç°½Úµã֮ǰÏȵ÷Óõݹ麯Êý·´×ªºóÐø½Úµã¡£Ô´´úÂëÈçÏ¡£²»
¹ýÕâ¸ö·½·¨ÓÐÒ»¸öȱµã£¬¾ÍÊÇÔÚ·´×ªºóµÄ×îºóÒ»¸ö½áµã»áÐγÉÒ»¸ö»·£¬ËùÒÔ±ØÐ뽫º¯ÊýµÄ·µ»ØµÄ½ÚµãµÄnextÓòÖÃΪNULL
¡£ÒòΪҪ¸Ä±äheadÖ¸Õ룬ËùÒÔÎÒÓÃÁËÒýÓá£Ëã·¨µÄÔ´´úÂëÈçÏ£º
linka* reverse(linka* p,linka*& head)
{
if(p == NULL || p->next == NULL)
{
head=p;
return p;
}
else
{
linka* tmp = reverse(p->next,head);
tmp->next = p;
return p;
}
}
3,ÅжÏÁ½¸öÊý×éÖÐÊÇ·ñ´æÔÚÏàͬµÄÊý×Ö
¸ø¶¨Á½¸öÅźÃÐòµÄÊý×飬ÔõÑù¸ßЧµÃÅжÏÕâÁ½¸öÊý×éÖдæÔÚÏàͬµÄÊý×Ö£¿
Õâ¸öÎÊÌâÊ×ÏÈÏëµ½µÄÊÇÒ»¸öO(nlogn)µÄËã·¨¡£¾ÍÊÇÈÎÒâÌôÑ¡Ò»¸öÊý×飬±éÀúÕâ¸öÊý×éµÄËùÓÐÔªËØ£¬±éÀú¹ý³ÌÖУ¬ÔÚÁíÒ»
¸öÊý×éÖжԵÚÒ»¸öÊý×éÖеÄÿ¸öÔªËؽøÐÐbinary search¡£ÓÃC++ʵÏÖ´úÂëÈçÏ£º
bool findcommon(int a[],int size1,int b[],int size2)
{
µÚ 1 Ò³
Êý¾Ý½á¹¹ÃæÊÔ´óÈ«
int i;
for(i=0;i {
int start=0,end=size2-1,mid;
while(start<=end)
{
mid=(start+end)/2;
if(a[i]==b[mid])
return true;
else if (a[i] end=mid-1;
else
start=mid+1;
}
}
return false;
}
ºóÀ´·¢ÏÖÓÐÒ»¸ö O(n)Ëã·¨¡£ÒòΪÁ½¸öÊý×鶼ÊÇÅźÃÐòµÄ¡£ËùÒÔÖ»ÒªÒ»´Î±éÀú¾ÍÐÐÁË¡£Ê×ÏÈÉèÁ½¸öϱ꣬·Ö±ð³õʼ»¯ÎªÁ½
¸öÊý×éµÄÆðʼµØÖ·£¬ÒÀ´ÎÏòÇ°Íƽø¡£ÍƽøµÄ¹æÔòÊDZȽÏÁ½¸öÊý×éÖеÄÊý×Ö£¬Ð¡µÄÄǸöÊý×éµÄϱêÏòÇ°ÍƽøÒ»²½£¬Ö±µ½ÈÎ
ºÎÒ»¸öÊý×éµÄϱ굽´ïÊý×éĩβʱ£¬Èç¹ûÕâʱ»¹Ã»Åöµ½ÏàͬµÄÊý×Ö£¬ËµÃ÷Êý×éÖÐûÓÐÏàͬµÄÊý×Ö¡£
bool findcommon2(int a[], int size1, int b[], int size2)
{
int i=0,j=0;
while(i {
if(a[i]==b[j])
return true;
if(a[i]>b[j])
j++;
if(a[i] i++;
}
return false;
}
4,×î´ó×ÓÐòÁÐ
ÎÊÌ⣺
¸ø¶¨Ò»ÕûÊýÐòÁÐA1£¬ A2£¬... An £¨¿ÉÄÜÓиºÊý£©£¬ÇóA1~AnµÄÒ»¸ö×ÓÐòÁÐAi~Aj£¬Ê¹µÃAiµ½AjµÄºÍ×î´ó
ÀýÈ磺
ÕûÊýÐòÁÐ-2, 11, -4, 13, -5, 2, -5, -3, 12, -9µÄ×î´ó×ÓÐòÁеĺÍΪ21¡£
¶ÔÓÚÕâ¸öÎÊÌ⣬×î¼òµ¥Ò²ÊÇ×îÈÝÒ×Ïëµ½µÄÄǾÍÊÇÇî¾ÙËùÓÐ×ÓÐòÁеķ½·¨¡£ÀûÓÃÈýÖØÑ­»·£¬ÒÀ´ÎÇó³öËùÓÐ×ÓÐòÁеĺÍÈ»ºó
È¡×î´óµÄÄǸö¡£µ±È»Ëã·¨¸´ÔӶȻá´ïµ½O(n^3)¡£ÏÔÈ»ÕâÖÖ·½·¨²»ÊÇ×îÓŵģ¬ÏÂÃæ¸ø³öÒ»¸öËã·¨¸´ÔÓ¶ÈΪO(n)µÄÏßÐÔËã·¨
ʵÏÖ£¬Ëã·¨µÄÀ´Ô´ÓÚProgramming PearlsÒ»Êé¡£
ÔÚ¸ø³öÏßÐÔË㷨֮ǰ£¬ÏÈÀ´¿´Ò»¸ö¶ÔÇî¾ÙËã·¨½øÐÐÓÅ»¯µÄËã·¨£¬ËüµÄËã·¨¸´ÔÓ¶ÈΪO(n^2)¡£ÆäʵÕâ¸öËã·¨Ö»ÊǶԶÔÇî¾Ù
Ëã·¨ÉÔ΢×öÁËһЩÐ޸ģºÆäʵ×ÓÐòÁеĺÍÎÒÃDz¢²»ÐèҪÿ´Î¶¼ÖØмÆËãÒ»±é¡£¼ÙÉèSum(i, j)ÊÇA[i] ... A[j]µÄºÍ£¬ÄÇ
ôSum(i, j+1) = Sum(i, j) + A[j+1]¡£ÀûÓÃÕâÒ»¸öµÝÍÆ£¬ÎÒÃǾͿÉÒԵõ½ÏÂÃæÕâ¸öËã·¨£º
int max_sub(int a[],int size)
{
int i,j,v,max=a[0];
for(i=0;i {
v=0;
for(j=i;j {
v=v+a[j];//Sum(i, j+1) = Sum(i, j) + A[j+1]
if(v>max)
max=v;
}
}
return max;
}
ÄÇÔõÑù²ÅÄÜ´ïµ½ÏßÐÔ¸´ÔÓ¶ÈÄØ£¿ÕâÀïÔËÓö¯Ì¬¹æ»®µÄ˼Ïë¡£ÏÈ¿´Ò»ÏÂÔ´´úÂëʵÏÖ£º
int max_sub2(int a[], int size)
{
int i,max=0,temp_sum=0;
for(i=0;i {
temp_sum+=a[i];
if(temp_sum>max)
max=temp_sum;
else if(temp_sum<0)
temp_sum=0;
}
return max;
}
ÔÚÕâÒ»±éɨÃèÊý×éµ±ÖУ¬´Ó×óµ½ÓҼǼµ±Ç°×ÓÐòÁеĺÍtemp_sum£¬ÈôÕâ¸öºÍ²»¶ÏÔö¼Ó£¬ÄÇô×î´ó×ÓÐòÁеĺÍmaxÒ²²»¶ÏÔö
µÚ 2 Ò³
Êý¾Ý½á¹¹ÃæÊÔ´óÈ«
¼Ó(²»¶Ï¸üÐÂmax)¡£Èç¹ûÍùǰɨÃèÖÐÓöµ½¸ºÊý£¬ÄÇôµ±Ç°×ÓÐòÁеĺͽ«»á¼õС¡£´Ëʱtemp_sum ½«»áСÓÚmax£¬µ±È»maxÒ²
¾Í²»¸üС£Èç¹ûtemp_sum½µµ½0ʱ£¬ËµÃ÷Ç°ÃæÒѾ­É¨ÃèµÄÄÇÒ»¶Î¾Í¿ÉÒÔÅ×ÆúÁË£¬Õâʱ½«temp_sumÖÃΪ0¡£È»ºó£¬temp_sum
½«´ÓºóÃ濪ʼ½«Õâ¸ö×ӶνøÐзÖÎö£¬ÈôÓбȵ±Ç°max´óµÄ×ӶΣ¬¼ÌÐø¸üÐÂmax¡£ÕâÑùÒ»ÌËɨÃè½á¹ûÒ²¾Í³öÀ´ÁË¡£5, ÕÒ³öµ¥
ÏòÁ´±íµÄÖмä½áµã
ÕâµÀÌâºÍ½âÅжÏÁ´±íÊÇ·ñ´æÔÚ»·£¬ÎÒÓõÄÊǷdz£ÀàËƵķ½·¨£¬Ö»²»¹ý½áÊøÑ­»·µÄÌõ¼þºÍº¯Êý·µ»ØÖµ²»Ò»Ñù°ÕÁË¡£ÉèÖÃÁ½
¸öÖ¸Õëp1£¬p2¡£Ã¿´ÎÑ­»·p1ÏòÇ°×ßÒ»²½£¬p2ÏòÇ°×ßÁ½²½¡£µ±p2µ½´ïÁ´±íµÄĩβʱ£¬p1Ö¸ÏòµÄʱÁ´±íµÄÖм䡣
link* mid(link* head)
{
link* p1,*p2;
p1=p2=head;
if(head==NULL || head->next==NULL)
return head;
do {
p1=p1->next;
p2=p2->next->next;
} while(p2 && p2->next);
return p1;
}
6,°´µ¥´Ê·´×ª×Ö·û´®
²¢²»ÊǼòµ¥µÄ×Ö·û´®·´×ª£¬¶øÊÇ°´¸ø¶¨×Ö·û´®ÀïµÄµ¥´Ê½«×Ö·û´®µ¹×ª¹ýÀ´£¬¾ÍÊÇ˵×Ö·û´®ÀïÃæµÄµ¥´Ê»¹ÊDZ£³ÖÔ­À´µÄ˳
Ðò£¬

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 ÏÂÒ»Ò³ βҳ 1/3/3
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºÈí¼þ²âÊÔ¹¤³Ìʦ±ÊÊÔÌâ¼°´ð°¸ ÏÂһƪ£º²ÒÁҵĻªÎªÒ»Ãæ

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿