??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲人成网站18禁止一区 ,国产日韩亚洲大尺度高清,国产亚洲人成无码网在线观看http://www.tkk7.com/china-qd/[ThinkingDog]Ƣ迎您的光Q请多多指教Q?/description>zh-cnSun, 11 May 2025 16:14:31 GMTSun, 11 May 2025 16:14:31 GMT60关于阉K的明星问题之我见http://www.tkk7.com/china-qd/archive/2015/01/11/422174.html沉思的?/dc:creator>沉思的?/author>Sun, 11 Jan 2015 13:41:00 GMThttp://www.tkk7.com/china-qd/archive/2015/01/11/422174.htmlhttp://www.tkk7.com/china-qd/comments/422174.htmlhttp://www.tkk7.com/china-qd/archive/2015/01/11/422174.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/422174.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/422174.html今天看面试题看到了阿里的明星问题Q觉得大家说的太高深了,说一下我的解法吧Q?br />
题目Q有N个hQ其中一个明星和n-1个群众,众都认识明星,明星不认识Q何群众,众和群众之间的认识关系不知道,现在如果你是机器人R2T2Q你每次问一个h是否认识另外一个h的代价ؓO(1)Q试设计一U算法找出明星,q给出时间复杂度Q没有复杂度不得分)?br />
我的解法( 复杂度O(n) )Q?br />
// bool known(A, B) 问A认识B不?
Person persons[n];
// init persons
Person p = persons[0];
for(int i = 1; i < n; i++) {
    if(!known(persons[i], p)) { // 不认识,说明p不是明星
      p = persons[i];
    }
    // else 认识Q说明persons[i]不是明星
}
// p 是所求的明星


]]>
单讲一下字W集与编?/title><link>http://www.tkk7.com/china-qd/archive/2011/05/27/351192.html</link><dc:creator>沉思的?/dc:creator><author>沉思的?/author><pubDate>Fri, 27 May 2011 08:56:00 GMT</pubDate><guid>http://www.tkk7.com/china-qd/archive/2011/05/27/351192.html</guid><wfw:comment>http://www.tkk7.com/china-qd/comments/351192.html</wfw:comment><comments>http://www.tkk7.com/china-qd/archive/2011/05/27/351192.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/china-qd/comments/commentRss/351192.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/china-qd/services/trackbacks/351192.html</trackback:ping><description><![CDATA[<p>我来解释吧,q个问题关不难,只是很多中国E序员不懂装懂ؕԌ再加上不断地转蝲Q{载地多了也就让大家ؕ了方寸?/p> <p>首先Q大家要搞明白字W集与编码的区别?br />字符集,是一集合Q规定了q个集合里有哪些字符?br />~码Q就是一个或多个字符集怎么影射到数字,好存储在计算机里或网l传输?/p> <p>有上以上知识Q就Ҏ理解多了</p> <p>XML中的encoding=gb2312是指q个文g里的字符集ؓgb2312,当你保存或传输时一定要用包含GB2312字符集的~码Q不然就可能会出错,而XML文g本n存储的编码,正常情况下也是包含GB2312字符集的~码Q不然也可能出错?/p> <p>比如QUTF8实ؓ一~码Q由很多字符集或其字集组成,同时UTF8q里面的所有字W本来就是一字符集,UTF8同时也是一字符?br />再如QGB2312是一字符集,可以~码为UTF-8 UTF-16 EUC-CN</p> <p> </p> <div style="z-index: 0; border-bottom: #ffff99; position: relative; border-left: #ffff99; background-color: #ffff99; width: 587px; display: block; height: 176px; border-top: #ffff99; top: 4px; border-right: #ffff99; left: 6px; clipleft: ; cliptop: ; clipright: ; clipbottom: " align="left"> <p>EUC-CN是GB 2312最常用的表C方法。浏览器~码表上?#8220;GB2312”Q通常都是?#8220;EUC-CN”表示法?/p> <p>GB 2312字符使用两个字节来表C?/p> <p>“W一位字?#8221;使用0xA1-0xF7 <br />“W二位字?#8221;使用0xA1-0xFE <br />举例来说Q?#8220;?#8221;字是GB 2312之中的第一个汉字,它的Z码是1601?/p> <p>在EUC-CN之中Q它?xA0+16=0xB0,0xA0+1=0xA1Q得?xB0A1?/p></div> <p><br />也就是说~码里的字符本n是字符集,但是字符集可以用包含此字W集的Q何一U编码进行编?/p><img src ="http://www.tkk7.com/china-qd/aggbug/351192.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/china-qd/" target="_blank">沉思的?/a> 2011-05-27 16:56 <a href="http://www.tkk7.com/china-qd/archive/2011/05/27/351192.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微Y{数据结?法面试100题_全部出炉_94http://www.tkk7.com/china-qd/archive/2011/05/27/351168.html沉思的?/dc:creator>沉思的?/author>Fri, 27 May 2011 05:45:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/27/351168.htmlhttp://www.tkk7.com/china-qd/comments/351168.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/27/351168.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/351168.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/351168.html/**//********************************************************************    purpo...  阅读全文

]]>
微Y{数据结?法面试100题_全部出炉_04http://www.tkk7.com/china-qd/archive/2011/05/26/351085.html沉思的?/dc:creator>沉思的?/author>Thu, 26 May 2011 06:57:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/26/351085.htmlhttp://www.tkk7.com/china-qd/comments/351085.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/26/351085.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/351085.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/351085.html/********************************************************************
    
    purpose:    在二元树中找出和为某一值的所有\?br />    
    题目Q输入一个整数和一二元树?br />    从树的根l点开始往下访问一直到叶结Ҏl过的所有结点Ş成一条\径?br />    打印出和与输入整数相{的所有\径?br />    例如 输入整数22和如下二元树
       10  
       / \   
      5  12   
     / \   
    4   7
    则打印出两条路径Q?0, 12?0, 5, 7?br />
    二元树节点的数据l构定义为:
    struct BinaryTreeNode // a node in the binary tree
    {
    int m_nValue; // value of node
    BinaryTreeNode *m_pLeft; // left child of node
    BinaryTreeNode *m_pRight; // right child of node
    };

********************************************************************
*/

#include 
<iostream>
#include 
<vector>

using namespace std;

struct BinaryTreeNode // a node in the binary tree
{
    
int m_nValue; // value of node
    BinaryTreeNode *m_pLeft; // left child of node
    BinaryTreeNode *m_pRight; // right child of node
}
;

void PathEqualN(vector<BinaryTreeNode*> vect, BinaryTreeNode* pNode, int sum, int destSum)
{

    sum 
+= pNode->m_nValue;
    
if (pNode->m_pLeft == NULL && pNode->m_pRight == NULL) {
        
if (sum == destSum) {
            
for (int i = 0; i < vect.size(); i++{
                cout
<<vect[i]->m_nValue<<" ";
            }

            cout
<<pNode->m_nValue<<endl;
        }

        
return;
    }


    vect.push_back(pNode);
    
if (pNode->m_pLeft != NULL) {
        PathEqualN(vect, pNode
->m_pLeft, sum, destSum);
    }
 
    
if (pNode->m_pRight != NULL) {
        PathEqualN(vect, pNode
->m_pRight, sum, destSum);
    }

    vect.pop_back();
}


void Test_PathEqualN()
{
    
// init tree
    BinaryTreeNode node4; node4.m_nValue = 4; node4.m_pLeft = NULL; node4.m_pRight = NULL;
    BinaryTreeNode node7; node7.m_nValue 
= 7; node7.m_pLeft = NULL; node7.m_pRight = NULL;
    BinaryTreeNode node5; node5.m_nValue 
= 5; node5.m_pLeft = &node4; node5.m_pRight = &node7;

    BinaryTreeNode node12; node12.m_nValue 
= 12; node12.m_pLeft = NULL; node12.m_pRight = NULL;

    BinaryTreeNode root; root.m_nValue 
= 10; root.m_pLeft = &node5; root.m_pRight = &node12;

    
// search
    vector<BinaryTreeNode*> vect;
    PathEqualN(vect, 
&root, 022);


}

貌似都不是太难,N是要考虑l节Q?

]]>
微Y{数据结?法面试100题_全部出炉_03http://www.tkk7.com/china-qd/archive/2011/05/26/351082.html沉思的?/dc:creator>沉思的?/author>Thu, 26 May 2011 06:23:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/26/351082.htmlhttp://www.tkk7.com/china-qd/comments/351082.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/26/351082.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/351082.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/351082.htmlq个题做q也看到q,最q也看到q,今天又做Q把人家的代码脓上,哈哈
/********************************************************************
    purpose:    

    求子数组的最大和/求连l子数组的最大和 
    题目描述Q?br />    输入一个整形数l,数组里有正数也有负数?br />    数组中连l的一个或多个整数l成一个子数组Q每个子数组都有一个和?br />    求所有子数组的和的最大倹{要求时间复杂度为O(n)?br />
    例如输入的数lؓ1, -2, 3, 10, -4, 7, 2, -5Q和最大的子数lؓ3, 10, -4, 7, 2Q?br />    因此输出子数l的?8?br />
********************************************************************
*/


#include 
<iostream>   

using namespace std;

int maxSum(int* a, int n)   
{   
    
int sum=0;   
    
//其实要处理全是负数的情况Q很单,如稍后下面第3Ҏ见,直接把这句改成:"int sum=a[0]"卛_   
    
//也可以不改,当全是负数的情况Q直接返?Q也不见得不行?nbsp;  
    int b=0;   

    
for(int i=0; i<n; i++)   
    
{   
        
if(b<0)           //   
            b=a[i];   
        
else  
            b
+=a[i];   
        
if(sum<b)   
            sum
=b;   
    }
   
    
return sum;   
}
   

void Test_MaxSumOfSequenceSubArr()
{
    
int a[10]={1-2310-472-5};   
    
//int a[]={-1,-2,-3,-4};  //试全是负数的用?nbsp;  
    cout<<"Max sum: "<<maxSum(a,8)<<endl;   
}



]]>
微Y{数据结?法面试100题_全部出炉_02http://www.tkk7.com/china-qd/archive/2011/05/26/351081.html沉思的?/dc:creator>沉思的?/author>Thu, 26 May 2011 06:20:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/26/351081.htmlhttp://www.tkk7.com/china-qd/comments/351081.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/26/351081.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/351081.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/351081.html/********************************************************************
    purpose:    

    设计包含min函数的栈?br />    定义栈的数据l构Q要求添加一个min函数Q能够得到栈的最元素?br />    要求函数min、push以及pop的时间复杂度都是O(1)?br />
********************************************************************
*/

#include 
<vector> 

using namespace std;

template
<class T>
class stack
{
private:
    T
* elements;
    
int count, top;
    
int* minPos;
public:
    stack(
int n) {
        top 
= 0;
        count 
= n;
        minPos 
= new int[count];
        elements 
= new T[count];
        
if (elements == NULL || minPos == NULL) 
        
{
            count 
= 0;
            cout
<<"no more memory."<<endl;
        }

    }

    
void push(T element)
    
{
        
if (top >= count) {
            cout
<<"stack is full."<<endl;
        }
 else {
            
if (top <= 0 || element < elements[top-1]) {
                minPos[top] 
= top;
            }
 else {
                minPos[top] 
= minPos[top-1];
            }

            elements[top
++= element;
        }

    }

    T pop()
    
{
        
if (top <= 0{
            
throw "no element in stack";
        }
 else {
            
return elements[--top];
        }

    }

    T min()
    
{
        
if (top <= 0throw "no element in stack";
        
return elements[minPos[top-1]];
    }


    
bool empty()
    
{
        
return top <= 0;
    }


    
~stack()
    
{
        delete[] elements;
        delete[] minPos;
    }

}
;


void Test_StackWithMinFunc()
{
    stack
<int> st(20);
    
int val[] = {6,7,1,3,9,11};
    
int len = sizeof(val)/sizeof(val[0]);
    
for (int i = 0; i < len; i++{
        st.push(val[i]);
        cout
<<st.min()<<endl;
    }

    
while(!st.empty())
    
{
        cout
<<st.min()<<endl;
        st.pop();
    }

}


]]>
微Y{数据结?法面试100题_全部出炉_01http://www.tkk7.com/china-qd/archive/2011/05/26/351073.html沉思的?/dc:creator>沉思的?/author>Thu, 26 May 2011 05:25:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/26/351073.htmlhttp://www.tkk7.com/china-qd/comments/351073.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/26/351073.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/351073.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/351073.html/********************************************************************
    created:    2011/05/26        12:13
    filename:     BSTree2DuLink.h
    file base:    BSTree2DuLink
    file ext:    h
    author:        WT@CHINA
    
    purpose:    把二元查找树转变成排序的双向链表

    题目Q?br />    输入一二元查找树Q将该二元查找树转换成一个排序的双向链表?br />    要求不能创徏M新的l点Q只调整指针的指向?br />        10
        / \
      6    14
     / \   / \
    4   8 12 16
    转换成双向链?br />    4=6=8=10=12=14=16?br />
    首先我们定义的二元查找树 节点的数据结构如下:
    struct BSTreeNode
    {
    int m_nValue; // value of node
    BSTreeNode *m_pLeft; // left child of node
    BSTreeNode *m_pRight; // right child of node
    };
********************************************************************
*/

#include 
<iostream>
using namespace std;

struct BSTreeNode
{
    
int m_nValue; // value of node
    BSTreeNode *m_pLeft; // left child of node
    BSTreeNode *m_pRight; // right child of node
}
;

void BSTree2DuLink(BSTreeNode* pNode, BSTreeNode* pLeft, BSTreeNode* pRight)
{
    
if (pNode->m_pLeft != NULL) {
        BSTree2DuLink(pNode
->m_pLeft, pLeft, pNode);
    }
 else {
        
if (pLeft != NULL) {
            pNode
->m_pLeft = pLeft;
            pLeft
->m_pRight = pNode;
        }

    }


    
if (pNode->m_pRight != NULL) {
        BSTree2DuLink(pNode
->m_pRight, pNode, pRight);
    }
 else {
        
if (pRight != NULL) {
            pNode
->m_pRight = pRight;
            pRight
->m_pLeft = pNode;
        }

    }

}


void Test_BSTree2DuLink()
{
    
// init tree
    BSTreeNode node4; node4.m_nValue = 4; node4.m_pLeft = NULL; node4.m_pRight = NULL;
    BSTreeNode node8; node8.m_nValue 
= 8; node8.m_pLeft = NULL; node8.m_pRight = NULL;
    BSTreeNode node6; node6.m_nValue 
= 6; node6.m_pLeft = &node4; node6.m_pRight = &node8;

    BSTreeNode node12; node12.m_nValue 
= 12; node12.m_pLeft = NULL; node12.m_pRight = NULL;
    BSTreeNode node16; node16.m_nValue 
= 16; node16.m_pLeft = NULL; node16.m_pRight = NULL;
    BSTreeNode node14; node14.m_nValue 
= 14; node14.m_pLeft = &node12; node14.m_pRight = &node16;

    BSTreeNode root; root.m_nValue 
= 10; root.m_pLeft = &node6; root.m_pRight = &node14;
    
    
// convert BSTree to DuLink
    BSTree2DuLink(&root, NULL, NULL);

    
// console out the double link list
    BSTreeNode* p = &root;
    
while(p->m_pLeft != NULL) p = p->m_pLeft;
    
while(p != NULL)
    
{
        cout
<<p->m_nValue<<"  ";
        p 
= p->m_pRight;
    }

    
}


]]>
[转]微Y{数据结?法面试100题_全部出炉Q可以练l脑Q别整天copy到脑袋不灉|Q?/title><link>http://www.tkk7.com/china-qd/archive/2011/05/26/351072.html</link><dc:creator>沉思的?/dc:creator><author>沉思的?/author><pubDate>Thu, 26 May 2011 05:22:00 GMT</pubDate><guid>http://www.tkk7.com/china-qd/archive/2011/05/26/351072.html</guid><wfw:comment>http://www.tkk7.com/china-qd/comments/351072.html</wfw:comment><comments>http://www.tkk7.com/china-qd/archive/2011/05/26/351072.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/china-qd/comments/commentRss/351072.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/china-qd/services/trackbacks/351072.html</trackback:ping><description><![CDATA[<p>================</p> <p>作?July  2010q?2??/p> <p>微Y{?00题系列V0.1版终于结束了?/p> <p>?010q?0?1日当天最初发表前40题以来,直至此刻Q整理这100题,已有q?个月?/p> <p>2个月Q因整理q?00题,很多很多其它的事都被我强q性的搁置一旁,</p> <p>如今Q要好好专心d因这100题而被耽误的、其它的事了?/p> <p> </p> <p>q微软等数据l构+法面试100题系?是的Q系?Q到底现在、或此刻、或未来Q对初学者有多大的意义,</p> <p>在此Q我׃l予评说了?/p> <p>׃们自己来认定。所谓,公道自在人心Q我怿q句话?/p> <p> </p> <p>M人,对以下Q何资料、题目、或{案Q有M问题Q欢q联pL?/p> <p>作者邮:</p> <p><a href="mailto:zhoulei0907@yahoo.cn"><font color="#37708b">zhoulei0907@yahoo.cn</font></a></p> <p><a href="mailto:786165179@qq.com"><font color="#37708b">786165179@qq.com</font></a></p> <p> </p> <p>作者声明:</p> <p>转蝲或引用以下Q何资料、或题目Q请注明作者本人July及出处?/p> <p>向您的厚道致敬,谢谢?/p> <p> </p> <p>好了Q请享受q完完整整的100题吧Q这可是首次完整亮相哦?D?/p> <p>-----------------------------------</p> <p>1.把二元查找树转变成排序的双向链表<br /> 题目Q?br />输入一二元查找树Q将该二元查找树转换成一个排序的双向链表?br />要求不能创徏M新的l点Q只调整指针的指向?br />   10<br />  / \<br />  6  14<br /> / \ / \<br />4  8 12 16<br /> 转换成双向链?br />4=6=8=10=12=14=16?br /> <br /> 首先我们定义的二元查找树 节点的数据结构如下:<br /> struct BSTreeNode<br />{<br />  int m_nValue; // value of node<br />  BSTreeNode *m_pLeft; // left child of node<br />  BSTreeNode *m_pRight; // right child of node<br />};</p> <p> <br />2.设计包含min函数的栈?br />定义栈的数据l构Q要求添加一个min函数Q能够得到栈的最元素?br />要求函数min、push以及pop的时间复杂度都是O(1)?/p> <p> <br />3.求子数组的最大和<br />题目Q?br />输入一个整形数l,数组里有正数也有负数?br />数组中连l的一个或多个整数l成一个子数组Q每个子数组都有一个和?br />求所有子数组的和的最大倹{要求时间复杂度为O(n)?/p> <p>例如输入的数lؓ1, -2, 3, 10, -4, 7, 2, -5Q和最大的子数lؓ3, 10, -4, 7, 2Q?br />因此输出子数l的?8?/p> <p> </p> <p>4.在二元树中找出和为某一值的所有\?/p> <p>题目Q输入一个整数和一二元树?br />从树的根l点开始往下访问一直到叶结Ҏl过的所有结点Ş成一条\径?br />打印出和与输入整数相{的所有\径?br />例如 输入整数22和如下二元树<br />  10  <br />  / \   <br /> 5  12   <br /> /   \   <br />4     7<br />则打印出两条路径Q?0, 12?0, 5, 7?/p> <p>二元树节点的数据l构定义为:<br />struct BinaryTreeNode // a node in the binary tree<br />{<br />int m_nValue; // value of node<br />BinaryTreeNode *m_pLeft; // left child of node<br />BinaryTreeNode *m_pRight; // right child of node<br />};</p> <p> </p> <p>5.查找最的k个元?br />题目Q输入n个整敎ͼ输出其中最的k个?br />例如输入1Q?Q?Q?Q?Q?Q??q?个数字,则最的4个数字ؓ1Q?Q???/p> <p> <br />W??br />腾讯面试题: <br />l你10分钟旉Q根据上排给出十个数Q在其下排填出对应的十个?<br />要求下排每个数都是先前上排那十个数在下排出现的次数?<br />上排的十个数如下Q?<br />?Q?Q?Q?Q?Q?Q?Q?Q?Q??/p> <p>举一个例子, <br />数? 0,1,2,3,4,5,6,7,8,9 <br />分配: 6,2,1,0,0,0,1,0,0,0 <br />0在下排出C6ơ,1在下排出C2ơ, <br />2在下排出C1ơ,3在下排出C0?... <br />以此cL.. </p> <p><br />W??br />微Y亚院之编E判断俩个链表是否相?br />l出俩个单向链表的头指针Q比如h1Qh2Q判断这俩个链表是否怺?br />Z化问题,我们假设俩个链表均不带环?/p> <p>问题扩展Q?br />1.如果链表可能有环?<br />2.如果需要求Z个链表相交的W一个节点列?</p> <p> <br />W??br />此脓选一?比较怪的题,Q由于其中题目本w与法关系不大Q仅考考思维。特此ƈ作一题?br />1.有两个房_一间房里有三盏灯,另一间房有控制着三盏灯的三个开养I</p> <p>q两个房间是 分割开的,从一间里不能看到另一间的情况?br />现在要求受训者分别进q两戉K一ơ,然后判断三盏灯分别是由哪个开x制的?br />有什么办法呢Q?/p> <p>2.你让一些hZ工作了七天,你要用一栚w条作为报酬。金条被分成七小块,每天l出一块?br />如果你只能将金条切割两次Q你怎样分给q些工h?</p> <p>3. ★用一U算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍?br />  ★用一U算法在一个@环的链接表里插入一个节点,但不得穿链接表?br />  ★用一U算法整理一个数l。你Z么选择q种Ҏ?<br />  ★用一U算法通用字符串相匚w?br />  ★颠倒一个字W串。优化速度。优化空间?br />  ★颠倒一个句子中的词的顺序,比如?#8220;我叫克丽?#8221;转换?#8220;克丽丝叫?#8221;Q?/p> <p>实现速度最快,Ud最?br />  ★扑ֈ一个子字符丌Ӏ优化速度。优化空间?br />  ★比较两个字符Ԍ用O(n)旉和恒量空间?br />  ★假设你有一个用1001个整数组成的数组Q这些整数是L排列的,但是你知道所有的整数都在1?000(包括1000)之间。此外,除一个数字出Cơ外Q其他所有数字只出现一ơ。假设你只能对这个数l做一ơ处理,用一U算法找出重复的那个数字。如果你在运中使用了辅助的存储方式Q那么你能找C用这U方式的法?<br />  ★不用乘法或加法增?倍。现在用同样的方法增?倍?/p> <p> </p> <p><br />W??br />判断整数序列是不是二元查找树的后序遍历结?br />题目Q输入一个整数数l,判断该数l是不是某二元查找树的后序遍历的l果?br />如果是返回trueQ否则返回false?/p> <p>例如输入5????1?0?Q由于这一整数序列是如下树的后序遍历结果:</p> <p>         8<br />      /  \<br />     6    10<br />    / \  / \<br />   5  7 9  11<br />因此q回true?br />如果输入7???Q没有哪|的后序遍历的l果是这个序列,因此q回false?/p> <p> </p> <p>W?0?br />{句子中单词的序?br />题目Q输入一个英文句子,{句子中单词的序Q但单词内字W的序不变?/p> <p>句子中单词以I格W隔开。ؓ单v见,标点W号和普通字母一样处理?br />例如输入“I am a student.”Q则输出“student. a am I”?/p> <p> <br />W?1?br />求二叉树中节点的最大距?..</p> <p>如果我们把二叉树看成一个图Q父子节点之间的q线看成是双向的Q?br />我们姑且定义"距离"Z节点之间边的个数?br />写一个程序,<br />求一二叉树中相距最q的两个节点之间的距R?/p> <p> </p> <p>W?2?br />题目Q求1+2+…+nQ?br />要求不能使用乘除法、for、while、if、else、switch、case{关键字以及条g判断语句QA?B:CQ?/p> <p> </p> <p>W?3题:<br />题目Q输入一个单向链表,输出该链表中倒数Wk个结炏V链表的倒数W?个结点ؓ链表的尾指针?br />链表l点定义如下Q?nbsp; <br />struct ListNode<br />{<br />  int m_nKey;<br />  ListNode* m_pNext;<br />};</p> <p> </p> <p>W?4题:<br />题目Q输入一个已l按升序排序q的数组和一个数字,<br />在数l中查找两个敎ͼ使得它们的和正好是输入的那个数字?br />要求旉复杂度是O(n)。如果有多对数字的和{于输入的数字,输出L一对即可?br />例如输入数组1????1?5和数?5。由?+11=15Q因此输??1?/p> <p> </p> <p>W?5题:<br />题目Q输入一颗二元查找树Q将该树转换为它的镜像,<br />卛_转换后的二元查找树中Q左子树的结炚w大于叛_树的l点?br />用递归和@环两U方法完成树的镜像{换?nbsp; <br />例如输入Q?br />  8<br />  / \<br />  6 10<br /> /\ /\<br />5 7 9 11</p> <p>输出Q?br />   8<br />  / \<br /> 10 6<br /> /\ /\<br />11 9 7 5</p> <p>定义二元查找树的l点为:<br />struct BSTreeNode // a node in the binary search tree (BST)<br />{<br />  int m_nValue; // value of node<br />  BSTreeNode *m_pLeft; // left child of node<br />  BSTreeNode *m_pRight; // right child of node<br />};</p> <p> </p> <p>W?6题:<br />题目Q微软)Q?br />输入一颗二元树Q从上往下按层打印树的每个结点,同一层中按照从左往右的序打印?nbsp; <br />例如输入</p> <p>   8<br />  / \<br /> 6 10<br />/ \ / \<br />5 7 9 11</p> <p>输出8 6 10 5 7 9 11?/p> <p> </p> <p>W?7题:<br />题目Q在一个字W串中找到第一个只出现一ơ的字符。如输入abaccdeffQ则输出b?nbsp; <br />分析Q这道题?006qgoogle的一道笔试题?/p> <p> </p> <p><br />W?8题:<br />题目Qn个数字(0,1,…,n-1QŞ成一个圆圈,从数?开始,<br />每次从这个圆圈中删除Wm个数字(W一个ؓ当前数字本nQ第二个为当前数字的下一个数字)?br />当一个数字删除后Q从被删除数字的下一个l删除第m个数字?br />求出在这个圆圈中剩下的最后一个数字?br />JulyQ我惻Iq个题目Q不h已经 见识q了?/p> <p> </p> <p><br />W?9题:<br />题目Q定义Fibonacci数列如下Q?nbsp; <br />  / 0 n=0<br />f(n)= 1 n=1<br />  \ f(n-1)+f(n-2) n=2</p> <p>输入nQ用最快的Ҏ求该数列的第nV?br />分析Q在很多C语言教科书中讲到递归函数的时候,都会用Fibonacci作ؓ例子?br />因此很多E序员对q道题的递归解法非常熟悉Q但....呵呵Q你知道的。?/p> <p> </p> <p>W?0题:<br />题目Q输入一个表C整数的字符Ԍ把该字符串{换成整数q输出?br />例如输入字符?345"Q则输出整数345?/p> <p> </p> <p>W?1?br />2010q中兴面试题<br />~程求解Q?br />输入两个整数 n ?mQ从数列1Q?Q?.......n ?随意取几个数,<br />使其和等?m ,要求其中所有的可能l合列出?</p> <p> </p> <p>W?2题:<br />?张红色的牌和4张蓝色的牌,L人先拿Q意两张,再分别在A、B、C三h额头上脓L两张牌,<br />A、B、C三h都可以看见其余两人额头上的牌Q看完后让他们猜自己额头上是什么颜色的牌,<br />A说不知道QB说不知道QC说不知道Q然后A说知道了?br />h如何推理QA是怎么知道的?br />如果用程序,又怎么实现呢?</p> <p> <br />W?3题:<br />用最单,最快速的Ҏ计算Z面这个圆形是否和正方形相交?  <br />3D坐标p?原点(0.0,0.0,0.0)<br />圆Ş:<br />半径r = 3.0<br />圆心o = (*.*, 0.0, *.*)</p> <p>正方?<br />4个角坐标;  <br />1:(*.*, 0.0, *.*)<br />2:(*.*, 0.0, *.*)<br />3:(*.*, 0.0, *.*)<br />4:(*.*, 0.0, *.*)</p> <p> </p> <p>W?4题:<br />链表操作Q?br />Q?Q?单链表就地逆置Q?br />Q?Q合q?/p> <p> </p> <p>W?5题:<br />写一个函?它的原Ş是int continumax(char *outputstr,char *intputstr)<br />功能Q?br />在字W串中找l最长的数字Ԍq把q个串的长度q回Q?br />q把q个最长数字串付给其中一个函数参数outputstr所指内存?br />例如Q?abcd12345ed125ss123456789"的首地址传给intputstr后,函数返?Q?br />outputstr所指的gؓ123456789</p> <p> </p> <p>26.左旋转字W串</p> <p>题目Q?br />定义字符串的左旋转操作:把字W串前面的若q个字符Ud到字W串的尾部?/p> <p>如把字符串abcdef左旋?位得到字W串cdefab。请实现字符串左旋{的函数?br />要求旉寚w度ؓn的字W串操作的复杂度为O(n)Q辅助内存ؓO(1)?/p> <p> </p> <p>27.跛_阉?br />题目Q一个台阶d有nU,如果一ơ可以蟩1U,也可以蟩2U?br />求d有多总蟩法,q分析算法的旉复杂度?/p> <p>q道题最q经常出玎ͼ包括MicroStrategy{比较重视算法的公司<br />都曾先后选用q个q道题作为面试题或者笔试题?/p> <p> </p> <p>28.整数的二q制表示?的个?br />题目Q输入一个整敎ͼ求该整数的二q制表达中有多少??br />例如输入10Q由于其二进制表CZؓ1010Q有两个1Q因此输??/p> <p>分析Q?br />q是一道很基本的考查位运的面试题?br />包括微Y在内的很多公叔RN用过q道题?/p> <p> <br />29.栈的push、pop序列<br />题目Q输入两个整数序列。其中一个序列表C栈的push序Q?br />判断另一个序列有没有可能是对应的pop序?br />Z单v见,我们假设push序列的Q意两个整数都是不相等的?nbsp; </p> <p>比如输入的push序列?????Q那?????有可能是一个poppd?br />因ؓ可以有如下的push和pop序列Q?br />push 1Qpush 2Qpush 3Qpush 4QpopQpush 5QpopQpopQpopQpopQ?br />q样得到的pop序列是4?????br />但序?????׃可能是push序列1????的pop序列?/p> <p> <br />30.在从1到n的正C1出现的次?br />题目Q输入一个整数nQ求?到nqn个整数的十进制表CZ1出现的次数?/p> <p>例如输入12Q从1?2q些整数中包? 的数字有1Q?0Q?1?2Q?一共出C5ơ?br />分析Q这是一道广为流传的google面试题?/p> <p> </p> <p>31.华ؓ面试题:<br />一cM于蜂H的l构的图Q进行搜索最短\径(要求5分钟Q?/p> <p> </p> <p>32.<br />有两个序列a,bQ大都为n,序列元素的gQ意整敎ͼ无序Q?br />要求Q通过交换a,b中的元素Q[序列a元素的和]与[序列b元素的和]之间的差最?br />例如:  <br />var a=[100,99,98,1,2, 3];<br />var b=[1, 2, 3, 4,5,40];</p> <p> <br />33.<br />实现一个挺高的字W匹配算法:<br />l一串很长字W串Q要求找到符合要求的字符Ԍ例如目的Ԍ123<br />1******3***2 ,12*****3q些都要扑և?br />其实是cM一些和谐系l。。。。?/p> <p> <br />34.<br />实现一个队列?br />队列的应用场景ؓQ?br />一个生产者线E将intcd的数入列Q一个消费者线E将intcd的数出列</p> <p> <br />35.<br />求一个矩阵中最大的二维矩阵(元素和最?.?<br />1 2 0 3 4<br />2 3 4 5 1<br />1 1 5 3 0<br />中最大的?<br />4 5<br />5 3<br />要求:(1)写出法;(2)分析旉复杂?(3)用C写出关键代码</p> <p> <br />W?6?40题(有些题目搜集于CSDN上的|友Q已标明Q:<br />36.引用自网友:longzuo<br />hW试Q?br />n支队伍比赛,分别~号?Q?Q?。。。。n-1Q已知它们之间的实力Ҏ关系Q?br />存储在一个二l数lw[n][n]中,w[i][j] 的g表编号ؓiQj的队伍中更强的一支?/p> <p>所以w[i][j]=i 或者jQ现在给出它们的出场序Qƈ存储在数lorder[n]中,<br />比如order[n] = {4,3,5,8,1......}Q那么第一轮比赛就?4?Q?5??......<br />胜者晋U,败者淘汎ͼ同一轮淘汰的所有队伍排名不再细分,卛_以随便排Q?br />下一轮由上一轮的胜者按照顺序,再依ơ两两比Q比如可能是4?,直至出现W一?/p> <p>~程实现Q给Zl数lwQ一l数lorder ?用于输出比赛名次的数lresult[n]Q?br />求出result?/p> <p> </p> <p>37.<br />有n个长为m+1的字W串Q?br />如果某个字符串的最后m个字W与某个字符串的前m个字W匹配,则两个字W串可以联接Q?br />问这n个字W串最多可以连成一个多长的字符Ԍ如果出现循环Q则q回错误?/p> <p> </p> <p>38.<br />癑ֺ面试Q?br />1.用天qI只能比较Q不能称重)从一堆小球中扑և其中唯一一个较ȝQ用xơ天qI<br />最多可以从y个小球中扑և较轻的那个,求y与x的关pd?/p> <p>2.有一个很大很大的输入,大到没有存储器可以将其存储下来,<br />而且只输入一ơ,如何从这个输入流中随机取得m个记录?/p> <p>3.大量的URL字符Ԍ如何从中去除重复的,优化旉I间复杂?/p> <p> <br />39.<br />|易有道W试Q?br />(1).<br />求一个二叉树中Q意两个节炚w的最大距,<br />两个节点的距ȝ定义?q两个节炚w边的个数Q?br />比如某个孩子节点和父节点间的距离?Q和盔R兄弟节点间的距离?Q优化时间空间复杂度?/p> <p>(2).<br />求一个有向连通图的割点,割点的定义是Q如果除L节点和与其相关的边,<br />有向图不再连通,描述法?/p> <p> </p> <p>40.癑ֺ研发W试?br />引用自:zp155334877<br />1)设计一个栈l构Q满一下条ӞminQpushQpop操作的时间复杂度为O(1)?/p> <p>2)一串首q的珠子(m?Q有NU颜?N<=10)Q?br />设计一个算法,取出其中一D,要求包含所有N中颜Ԍq长度最短?br />q分析时间复杂度与空间复杂度?/p> <p>3)设计一个系l处理词语搭配问题,比如?中国 和h民可以搭配,<br />则中国h?人民中国都有效。要求:</p> <p>  *pȝ每秒的查询数量可能上千次Q?br />  *词语的数量?0WQ?br />  *每个词至多可以与1W个词搭配</p> <p>当用戯入中国h民的时候,要求q回与这个搭配词l相关的信息?/p> <p><br />41.求固晶机的晶元查扄?br />晶元盘由数目不详的大一L晶元l成Q晶元ƈ不一定全布满晶元盘,</p> <p>照相机每ơ这能匹配一个晶元,如匹配过Q则拑֏该晶元,<br />若匹配不q,照相机则按测好的晶元间距Ud下一个位|?br />求遍历晶元盘的算?求思\?/p> <p> </p> <p>42.请修改append函数Q利用这个函数实玎ͼ</p> <p>两个非降序链表的qQ?->2->3 ?2->3->5 qؓ 1->2->3->5<br />另外只能输出l果Q不能修改两个链表的数据?/p> <p> </p> <p>43.递归和非递归俩种Ҏ实现二叉树的前序遍历?/p> <p> </p> <p>44.腾讯面试题:<br />1.设计一个魔方(六面Q的E序?br />2.有一千万条短信,有重复,以文本文件的形式保存Q一行一条,有重复?br />L5分钟旉Q找出重复出现最多的?0条?/p> <p>3.收藏?万条urlQ现在给你一条urlQ如何找出相似的url。(面试官不解释何ؓ怼Q?/p> <p> </p> <p>45.雅虎Q?br />1.对于一个整数矩阵,存在一U运,对矩阵中L元素加一Ӟ需要其盔RQ上下左叻I</p> <p>某一个元素也加一Q现l出一正数矩阵Q判断其是否能够׃个全零矩늻q上q运得到?br />2.一个整数数l,长度为nQ将其分为m份,使各份的和相{,求m的最大?br />  比如{3Q?Q?Q?Q?} 可以分成{3Q?Q?Q?Q?} m=1; <br />  {3,6}{2,4,3} m=2<br />  {3,3}{2,4}{6} m=3 所以m的最大gؓ3</p> <p> </p> <p><br />46.搜狐Q?br />四对括号可以有多种匚w排列方式Q比如两Ҏ号可以有两种Q(Q(Q和Q(Q)<br />47.创新工场Q?br />求一个数l的最镉K减子序?比如{9Q?Q?Q?Q?Q?Q?Q?}的最镉K减子序列ؓ{9Q?Q?Q?Q?}</p> <p> </p> <p>48.微YQ?br />一个数l是׃个递减数列左移若干位Ş成的Q比如{4Q?Q?Q?Q?Q?}<br />是由{6Q?Q?Q?Q?Q?}左移两位形成的,在这U数l中查找某一个数?/p> <p> </p> <p>49.一道看上去很吓人的法面试题:<br />如何对n个数q行排序Q要求时间复杂度O(n)Q空间复杂度O(1)</p> <p> </p> <p>50.|易有道W试Q?br />1.求一个二叉树中Q意两个节炚w的最大距,两个节点的距ȝ定义?q两个节炚w边的个数Q?br />比如某个孩子节点和父节点间的距离?Q和盔R兄弟节点间的距离?Q优化时间空间复杂度?/p> <p>2.求一个有向连通图的割点,割点的定义是Q?br />如果除去此节点和与其相关的边Q有向图不再q通,描述法?br />-------------------------------------------------------------------</p> <p><br />51.和ؓnq箋正数序列?br />题目Q输入一个正数nQ输出所有和为nq箋正数序列?/p> <p>例如输入15Q由?+2+3+4+5=4+5+6=7+8=15Q所以输?个连l序?-5?-6?-8?br />分析Q这是网易的一道面试题?/p> <p> </p> <p><br />52.二元树的深度?/p> <p>题目Q输入一二元树的根l点Q求该树的深度?/p> <p>从根l点到叶l点依次l过的结点(含根、叶l点QŞ成树的一条\径,最长\径的长度为树的深度?/p> <p>例如Q输入二元树Q?br />                                            10<br />                                          /     \<br />                                        6        14<br />                                      /         /   \<br />                                    4         12     16</p> <p>输出该树的深??/p> <p>二元树的l点定义如下Q?/p> <p>struct SBinaryTreeNode // a node of the binary tree<br />{<br />      int               m_nValue; // value of node<br />      SBinaryTreeNode  *m_pLeft;  // left child of node<br />      SBinaryTreeNode  *m_pRight; // right child of node<br />};<br />分析Q这道题本质上还是考查二元树的遍历?/p> <p> </p> <p>53.字符串的排列?br />题目Q输入一个字W串Q打印出该字W串中字W的所有排列?br />例如输入字符串abcQ则输出由字Wa、b、c所能排列出来的所有字W串<br />abc、acb、bac、bca、cab和cba?/p> <p>分析Q这是一道很好的考查寚w归理解的编E题Q?br />因此在过Mq中频繁出现在各大公司的面试、笔试题中?/p> <p> </p> <p>54.调整数组序使奇C于偶数前面?/p> <p>题目Q输入一个整数数l,调整数组中数字的序Q得所有奇C于数l的前半部分Q?br />所有偶C于数l的后半部分。要求时间复杂度为O(n)?/p> <p> </p> <p>55.<br />题目Q类CMyString的声明如下:<br />class CMyString<br />{<br />public:<br />      CMyString(char* pData = NULL);<br />      CMyString(const CMyString& str);<br />      ~CMyString(void);<br />      CMyString& operator = (const CMyString& str);</p> <p>private:<br />      char* m_pData;<br />};<br />请实现其赋D符的重载函敎ͼ要求异常安全Q即当对一个对象进行赋值时发生异常Q对象的状态不能改变?/p> <p> </p> <p>56.最长公共字丌Ӏ?/p> <p>题目Q如果字W串一的所有字W按其在字符串中的顺序出现在另外一个字W串二中Q?/p> <p>则字W串一UC为字W串二的子串?/p> <p>注意Qƈ不要求子Ԍ字符串一Q的字符必须q箋出现在字W串二中?br />L写一个函敎ͼ输入两个字符Ԍ求它们的最长公共子Ԍq打印出最长公共子丌Ӏ?/p> <p>例如Q输入两个字W串BDCABA和ABCBDABQ字W串BCBA和BDAB都是是它们的最长公共子Ԍ<br />则输出它们的长度4Qƈ打印L一个子丌Ӏ?/p> <p>分析Q求最长公共子ԌLongest Common Subsequence, LCSQ是一道非常经典的动态规划题Q?/p> <p>因此一些重视算法的公司像MicroStrategy都把它当作面试题?/p> <p> </p> <p><br />57.用俩个栈实现队列?</p> <p>题目Q某队列的声明如下:</p> <p>template<typename T> class CQueue<br />{<br />public:<br />      CQueue() {}<br />      ~CQueue() {}</p> <p>      void appendTail(const T& node);  // append a element to tail<br />      void deleteHead();               // remove a element from head </p> <p>private:<br />     T> m_stack1;<br />     T> m_stack2;<br />};</p> <p>分析Q从上面的类的声明中Q我们发现在队列中有两个栈?br />因此q道题实质上是要求我们用两个栈来实现一个队列?br />怿大家Ҏ和队列的基本性质都非怺解了Q栈是一U后入先出的数据容器Q?br />因此寚w列进行的插入和删除操作都是在栈顶上进行;队列是一U先入先出的数据容器Q?br />我们L把新元素插入到队列的NQ而从队列的头部删除元素?/p> <p> </p> <p><br />58.从尾到头输出链表?/p> <p>题目Q输入一个链表的头结点,从尾到头反过来输出每个结点的倹{链表结点定义如下:<br />struct ListNode<br />{</p> <p>      int       m_nKey;<br />      ListNode* m_pNext;<br />};<br />分析Q这是一道很有意思的面试题?br />该题以及它的变体l常出现在各大公司的面试、笔试题中?/p> <p> </p> <p><br />59.不能被承的cR?br />题目Q用C++设计一个不能被l承的类?/p> <p>分析Q这是Adobe公司2007q校园招聘的最新笔试题?br />q道题除了考察应聘者的C++基本功底外,q能考察反应能力Q是一道很好的题目?/p> <p> </p> <p> </p> <p>60.在OQ?Q时间内删除链表l点?/p> <p>题目Q给定链表的头指针和一个结Ҏ针,在O(1)旉删除该结炏V链表结点的定义如下Q?/p> <p>struct ListNode</p> <p>{</p> <p>      int        m_nKey;</p> <p>      ListNode*  m_pNext;</p> <p>};</p> <p>函数的声明如下:<br />void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted);</p> <p>分析Q这是一道广为流传的Google面试题,能有效考察我们的编E基本功Q还能考察我们的反应速度Q?/p> <p>更重要的是,q能考察我们Ҏ间复杂度的理解?br />-------------------------------------------------------------------------</p> <p> </p> <p>61.扑և数组中两个只出现一ơ的数字<br />题目Q一个整型数l里除了两个数字之外Q其他的数字都出C两次?br />请写E序扑ևq两个只出现一ơ的数字。要求时间复杂度是O(n)Q空间复杂度是O(1)?/p> <p>分析Q这是一道很新颖的关于位q算的面试题?/p> <p> </p> <p><br />62.扑և链表的第一个公q炏V?br />题目Q两个单向链表,扑և它们的第一个公q炏V?/p> <p>链表的结点定义ؓQ?br />struct ListNode</p> <p>{</p> <p>      int         m_nKey;</p> <p>      ListNode*   m_pNext;</p> <p>};</p> <p>分析Q这是一道微软的面试题。微软非常喜Ƣ与链表相关的题目,<br />因此在微软的面试题中Q链表出现的概率相当高?/p> <p> </p> <p><br />63.在字W串中删除特定的字符?br />题目Q输入两个字W串Q从W一字符串中删除W二个字W串中所有的字符?/p> <p>例如Q输?#8221;They are students.”?#8221;aeiou”Q?/p> <p>则删除之后的W一个字W串变成”Thy r stdnts.”?/p> <p>分析Q这是一道微软面试题。在微Y的常见面试题中,与字W串相关的题目占了很大的一部分Q?br />因ؓ写程序操作字W串能很好的反映我们的编E基本功?/p> <p> </p> <p><br />64. L丑数?br />题目Q我们把只包含因???的数UC丑数QUgly NumberQ。例??都是丑数Q?br />?4不是Q因为它包含因子7。习惯上我们?当做是第一个丑数?br />求按从小到大的顺序的W?500个丑数?/p> <p>分析Q这是一道在|络上广为流传的面试题,据说google曄采用q这道题?/p> <p> </p> <p><br />65.输出1到最大的N位数<br />题目Q输入数字nQ按序输出?最大的n?0q制数。比如输?Q?/p> <p>则输???一直到最大的3位数?99?br />分析Q这是一道很有意思的题目。看h很简单,其实里面却有不少的玄机?/p> <p> </p> <p>66.颠倒栈?br />题目Q用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5}Q?在栈?br />颠倒之后的栈ؓ{5, 4, 3, 2, 1}Q?处在栈顶?/p> <p><br /> </p> <p>67.俩个闲玩׃?/p> <p>1.扑克牌的子<br />从扑克牌中随机抽5张牌Q判断是不是一个顺子,卌5张牌是不是连l的?br />2-10为数字本w,A?QJ?1QQ?2QK?3Q而大王可以看成L数字?</p> <p>2.n个骰子的Ҏ?br />把n个骰子扔在地上,所有骰子朝上一面的Ҏ之和为S。输入nQ?br />打印出S的所有可能的值出现的概率?/p> <p> </p> <p><br />68.把数l排成最的数?br />题目Q输入一个正整数数组Q将它们q接h排成一个数Q输排出的所有数字中最的一个?br />例如输入数组{32,  321}Q则输出q两个能排成的最数?2132?br />L决问题的法Qƈ证明该算法?/p> <p>分析Q这?9q?月䆾癑ֺ的一道面试题Q?br />从这道题我们可以看出癑ֺ对应聘者在法斚w有很高的要求?/p> <p> </p> <p><br />69.旋{数组中的最元素?br />题目Q把一个数l最开始的若干个元素搬到数l的末尾Q我们称之ؓ数组的旋转。输入一个排好序的数l的一个旋转,</p> <p>输出旋{数组的最元素。例如数l{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数l的最gؓ1?/p> <p>    分析Q这道题最直观的解法ƈ不难。从头到N历数l一ơ,p扑և最的元素Q?br />旉复杂度显然是O(N)。但q个思\没有利用输入数组的特性,我们应该能找到更好的解法?/p> <p> </p> <p><br />70.l出一个函数来输出一个字W串的所有排列?br />ANSWER 单的回溯可以实C。当然排列的产生也有很多U算法,ȝ看组合数学,</p> <p>q有逆序生成排列和一些不需要递归生成排列的方法?br />印象中Knuth?lt;TAOCP>W一卷里面深入讲了排列的生成。这些算法的理解需要一定的数学功底Q?br />也需要一定的灉|Q有兴趣最好看看?/p> <p> </p> <p><br />71.数值的整数ơ方?/p> <p>题目Q实现函数double Power(double base, int exponent)Q求base的exponentơ方?br />不需要考虑溢出?/p> <p>分析Q这是一道看h很简单的问题。可能有不少的h在看到题目后30U写出如下的代码Q?br />double Power(double base, int exponent)<br />{</p> <p>      double result = 1.0;<br />      for(int i = 1; i <= exponent; ++i)<br />            result *= base;<br />      return result;<br />}</p> <p> </p> <p> </p> <p>72.<br />题目Q设计一个类Q我们只能生成该cȝ一个实例?br />分析Q只能生成一个实例的cL实现了Singleton模式的类型?/p> <p> </p> <p> <br />73.对策字符串的最大长度?/p> <p>题目Q输入一个字W串Q输字符串中对称的子字符串的最大长度?br />比如输入字符?#8220;google”Q由于该字符串里最长的对称子字W串?#8220;goog”Q因此输??/p> <p>分析Q可能很多h都写q判断一个字W串是不是对U的函数Q这个题目可以看成是该函数的加强版?/p> <p> </p> <p><br />74.数组中超q出现次数超q一半的数字</p> <p>题目Q数l中有一个数字出现的ơ数过了数l长度的一半,扑ևq个数字?/p> <p>分析Q这是一道广为流传的面试题,包括癑ֺ、微软和Google在内的多家公叔R<br />曄采用q这个题目。要几十分钟的时间里很好地解{这道题Q?br />除了较好的编E能力之外,q需要较快的反应和较强的逻辑思维能力?/p> <p> </p> <p> </p> <p>75.二叉树两个结点的最低共同父l点<br />题目Q二叉树的结点定义如下:<br />struct TreeNode<br />{</p> <p>    int m_nvalue;<br />    TreeNode* m_pLeft;<br />    TreeNode* m_pRight;<br />};</p> <p>输入二叉树中的两个结点,输出q两个结点在C最低的共同父结炏V?br />分析Q求C两个l点的最低共同结Ҏ面试中经常出现的一个问题。这个问题至有两个变种?/p> <p> </p> <p><br />76.复杂链表的复?/p> <p>题目Q有一个复杂链表,其结炚w了有一个m_pNext指针指向下一个结点外Q?br />q有一个m_pSibling指向链表中的Ml点或者NULL。其l点的C++定义如下Q?br /> struct ComplexNode<br />{<br />    int m_nValue;<br />    ComplexNode* m_pNext;<br />    ComplexNode* m_pSibling;<br />};</p> <p>下图是一个含?个结点的该类型复杂链表?br />图中实线头表示m_pNext指针Q虚U箭头表Cm_pSibling指针。ؓ单v见,<br />指向NULL的指针没有画出?nbsp;                                <br />请完成函数ComplexNode* Clone(ComplexNode* pHead)Q以复制一个复杂链表?<br />分析Q在常见的数据结构上E加变化Q这是一U很新颖的面试题?br />要在不到一个小时的旉里解册U类型的题目Q我们需要较快的反应能力Q?br />Ҏ据结构透彻的理解以及扎实的~程功底?/p> <p> </p> <p> </p> <p><br />77.关于链表问题的面试题目如下:</p> <p>1.l定单链表,是否有环?br /> 使用两个指针p1,p2从链表头开始遍历,p1每次前进一步,p2每次前进两步。如果p2到达链表NQ?br />说明无环Q否则p1、p2必然会在某个时刻盔R(p1==p2)Q从而检到链表中有环?/p> <p> </p> <p>2.l定两个单链?head1, head2)Q检两个链表是否有交点Q如果有q回W一个交炏V?/p> <p>        如果head1==head2Q那么显然相交,直接q回head1?br />否则Q分别从head1,head2开始遍历两个链表获得其长度len1与len2Q假设len1>=len2Q?br />那么指针p1由head1开始向后移动len1-len2步,指针p2=head2Q?br />下面p1、p2每次向后前进一步ƈ比较p1p2是否相等Q如果相{即q回该结点,<br />否则说明两个链表没有交点?/p> <p><br />3.l定单链?head)Q如果有环的话请q回从头l点q入环的W一个节炏V?br />        q用题一Q我们可以检查链表中是否有环?br />        如果有环Q那么p1p2重合点p必然在环中。从pҎ开环,<br />Ҏ为:p1=p, p2=p->next, p->next=NULL。此Ӟ原单链表可以看作两条单链表,<br />一条从head开始,另一条从p2开始,于是q用题二的方法,我们扑ֈ它们的第一个交点即为所求?/p> <p><br />4.只给定单链表中某个结点p(q最后一个结点,即p->next!=NULL)指针Q删除该l点?br /> 办法很简单,首先是放p中数?然后p->next的数据copy入p中,接下来删除p->next卛_?/p> <p>5.只给定单链表中某个结点p(非空l点)Q在p前面插入一个结炏V?br />  办法与前者类|首先分配一个结点qQ将q插入在p后,接下来将p中的数据copy入q中,<br />然后再将要插入的数据记录在p中?/p> <p> </p> <p>78.链表和数l的区别在哪里?</p> <p>分析Q主要在基本概念上的理解?br />但是最好能考虑的全面一点,现在公司招h的竞争可能就在细节上产生Q?br />谁比较仔l,谁获胜的Z大?/p> <p> <br />79.<br />1.~写实现链表排序的一U算法。说明ؓ什么你会选择用这LҎQ?br />2.~写实现数组排序的一U算法。说明ؓ什么你会选择用这LҎQ?br />3.L写能直接实现strstr()函数功能的代码?</p> <p><br /> </p> <p>80.阉K巴巴一道笔试题</p> <p>问题描述:<br />12个高矮不同的?排成两排,每排必须是从矮到高排?而且W二排比对应的第一排的人高,问排列方式有多少U?<br />q个W试?很YD,因ؓ把某个递归关系隐藏得很深?/p> <p> </p> <p>先来几组癑ֺ的面试题Q?/p> <p>===================</p> <p>81.W?l百度面试题<br />1.一个int数组Q里面数据无M限制Q要求求出所有这L数a[i]Q?br />其左边的数都于{于它,双的数都大于等于它?br />能否只用一个额外数l和量其它I间实现?br />2.一个文Ӟ内含一千万行字W串Q每个字W串?K以内Q?br />要求扑և所有相反的串对Q如abc和cba?br />3.STL的set用什么实现的Qؓ什么不用hashQ?/p> <p> </p> <p>82.W?l百度面试题<br />1.l出两个集合A和BQ其中集合A={name}Q?br />集合B={age、sex、scholarship、address?..}Q?br />要求Q?br />问题1、根据集合A中的name查询出集合B中对应的属性信息;<br />问题2、根据集合B中的属性信息(单个属性,如age<20{)Q查询出集合A中对应的name?/p> <p>2.l出一个文Ӟ里面包含两个字段{url、size}Q?br />即url为网址Qsize为对应网址讉K的次敎ͼ<br />要求Q?br />问题1、利用Linux Shell命o或自p计算法,<br />查询出url字符串中包含“baidu”子字W串对应的size字段|<br />问题2、根据问?的查询结果,对其按照size由大到小的排列?br />Q说明:url数据量很大,100亿以上Q?/p> <p> </p> <p>83.W?l百度面试题<br />1.今年癑ֺ的一道题?br />癑ֺW试Q给定一个存放整数的数组Q重新排列数l得数l左边ؓ奇数Q右边ؓ偶数?br />要求Q空间复杂度O(1)Q时间复杂度为OQnQ?/p> <p>2.癑ֺW试?br />用C语言实现函数void * memmove(void *dest, const void *src, size_t n)?br />memmove函数的功能是拯src所指的内存内容前n个字节到dest所指的地址上?br />分析Q?br />׃可以把Q何类型的指针赋给voidcd的指?br />q个函数主要是实现各U数据类型的拯?/p> <p> </p> <p>84.W?l百度面试题<br />2010q?道百度面试题[怿Q你懂其中的含金量]<br />1.a~z包括大小写与0~9l成的N个数<br />用最快的方式把其中重复的元素挑出来?br />2.已知一随机发生器,产生0的概率是pQ?的概率是1-pQ现在要你构造一个发生器Q?br />使得它构??的概率均?/2Q构造一个发生器Q得它构???的概率均?/3Q?..Q?br />构造一个发生器Q得它构????..n的概率均?/nQ要求复杂度最低?br />3.?0个文Ӟ每个文g1GQ?br />每个文g的每一行都存放的是用户的queryQ每个文件的query都可能重复?br />要求按照query的频度排?</p> <p> </p> <p>85.又见字符串的问题<br />1.l出一个函数来复制两个字符串A和B?br />字符串A的后几个字节和字W串B的前几个字节重叠?br />分析Q记住,q种题目往往是考你对边界的考虑情况?br />2.已知一个字W串Q比如asderwsde,L其中的一个子字符串比如sde的个敎ͼ<br />如果没有q回0Q有的话q回子字W串的个数?/p> <p> <br />86.<br />怎样~写一个程序,把一个有序整数数l放C叉树中?<br />分析:本题考察二叉搜烦树的建树ҎQ简单的递归l构?br />关于树的法设计一定要联想到递归Q因为树本n是递归的定义?/p> <p>而,学会把递归改称非递归也是一U必要的技术?br />毕竟Q递归会造成栈溢出,关于pȝ底层的程序中不到非不得以最好不要用?br />但是Ҏ些数学问题,׃定要学会用递归去解冟?/p> <p> </p> <p>87.<br />1.大整数数怹的问题。(q是2002q在一考研班上遇到的算法题Q?br />2.求最大连l递增数字Ԍ?#8220;ads3sl456789DF3456ld345AA”中的“456789”Q?br />3.实现strstr功能Q即在父串中L子串首次出现的位|?br />Q笔试中常让面试者实现标准库中的一些函敎ͼ</p> <p> </p> <p><br />88.2005q?1月金q试题。编码完成下面的处理函数?br />函数字W串中的字符'*'Ud串的前部分,</p> <p>前面的非'*'字符后移Q但不能改变?*'字符的先后顺序,函数q回串中字符'*'的数量?br />如原始串为:ab**cd**e*12Q?br />处理后ؓ*****abcde12Q函数ƈq回gؓ5。(要求使用量的旉和辅助空_</p> <p> </p> <p>89.州数码、华为、东软笔试题<br />1.2005q?1?5日华Y件研发笔试题。实C单链表的逆{?br />2.~码实现字符串{整型的函敎ͼ实现函数atoi的功能)Q据说是州数码W试题。如字W?br />?”+123”123, ”-0123”-123, “123CS45”123, “123.45CS”123, “CS123.45”0<br />3.快速排序(东Y喜欢考类似的法填空题,又如堆排序的法{)<br />4.删除字符串中的数字ƈ压羃字符丌Ӏ?br />如字W串”abc123de4fg56”处理后变?#8221;abcdefg”。注意空间和效率?br />Q下面的法只需要一ơ遍历,不需要开辟新I间Q时间复杂度为O(N)Q?br />5.求两个串中的W一个最长子Ԍ州数码以前试题Q?br />?abractyeyt","dgdsaeactyey"的最大子串ؓ"actyet"?/p> <p> </p> <p><br />90.<br />1.不开辟用于交换数据的临时I间Q如何完成字W串的逆序<br />(在技术一轮面试中Q有些面试官会这样问)?br />2.删除串中指定的字W?br />Q做此题Ӟ千万不要开辟新I间Q否则面试官可能认ؓ你不适合做嵌入式开发)<br />3.判断单链表中是否存在环?/p> <p> </p> <p>91.<br />1.一道著名的毒酒问题<br />?000桉Q其?桶有毒。而一旦吃了,毒性会?周后发作?br />现在我们用小老鼠做实验,要在1周内扑և那桶毒酒Q问最需要多老鼠?br />2.有趣的石头问?br />有一?万个矛_?万个木头Q对于每个石头都?个木头和它重量一P<br />把配对的矛_和木头找出来?/p> <p> </p> <p> </p> <p>92.<br />1.多h排成一个队?我们认ؓ从低到高是正的序列,但是L部分Z遵守U序?br />如果?前面的h比后面的人高(两hw高一栯为是合适的),<br />那么我们p两个人是一?#8220;捣ؕ分子”,比如?现在存在一个序?<br />176, 178, 180, 170, 171<br />q些捣ؕ分子对ؓ<br /><176, 170>, <176, 171>, <178, 170>, <178, 171>, <180, 170>, <180, 171>, <br />那么,现在l出一个整型序?h些捣乱分子对的个?仅给出捣乱分子对的数目即?不用具体的对)</p> <p>要求Q?br />输入:<br />Z个文?in)Q文件的每一行ؓ一个序列。序列全为数字,数字间用”,”分隔?br />输出Q?br />Z个文?out)Q每行ؓ一个数字,表示捣ؕ分子的对数?/p> <p>详细说明自己的解题思\Q说明自己实现的一些关键点?br />q给出实现的代码 Qƈ分析旉复杂度?br />限制Q?br />输入每行的最大数字个Cؓ100000个,数字最长ؓ6位。程序无内存使用限制?/p> <p> </p> <p>93.在一个int数组里查找这L敎ͼ它大于等于左侧所有数Q小于等于右侧所有数?br />直观x是用两个数组a、b。a[i]、b[i]分别保存从前到i的最大的数和从后到i的最的敎ͼ</p> <p>一个解{:q需要两ơ遍历,然后再遍历一ơ原数组Q?br />所有data[i]>=a[i-1]&&data[i]<=b[i]的data[i]扑և卛_?/p> <p>l出q个解答后,面试官有要求只能用一个辅助数l,且要求少遍历一ơ?/p> <p> </p> <p>94.微YW试?br />求随机数构成的数l中扑ֈ长度大于=3的最长的{差数列9 d- x' W) w9 ?" o3 b0 R<br />输出{差数列由小到大: <br />如果没有W合条g的就输出<br />格式Q?br />输入[1,3,0,5,-1,6]<br />输出[-1,1,3,5]<br />要求旉复杂度,I间复杂度尽量小</p> <p> </p> <p>95.华ؓ面试?br />1 判断一字符串是不是对称的,如:abccba<br />2.用递归的方法判断整数组a[N]是不是升序排?/p> <p> </p> <p>96.08q中兴校园招聘笔试题<br />1Q编写strcpy 函数<br />已知strcpy 函数的原型是<br />char *strcpy(char *strDest, const char *strSrc);<br />其中strDest 是目的字W串QstrSrc 是源字符丌Ӏ不调用C++/C 的字W串库函敎ͼ?br />~写函数 strcpy</p> <p> </p> <p><br />最后压轴之戏,l结此微软等100题系列V0.1版?br />那就Q?br />q箋来几l微软公司的面试题,让你一ơ爽个够Q?br />======================<br />97.W?l微软较单的法面试?br />1.~写反{字符串的E序Q要求优化速度、优化空间?<br />2.在链表里如何发现循环链接Q?br />3.~写反{字符串的E序Q要求优化速度、优化空间?br />4.l出z牌的一个算法,q将z好的牌存储在一个整形数l里?<br />5.写一个函敎ͼ查字W是否是整数Q如果是Q返回其整数倹{?br />Q或者:怎样只用4行代码编写出一个从字符串到长整形的函数Q) </p> <p><br />98.W?l微软面试题<br />1.l出一个函数来输出一个字W串的所有排列?br />2.L写实现malloc()内存分配函数功能一L代码?br />3.l出一个函数来复制两个字符串A和B。字W串A的后几个字节和字W串B的前几个字节重叠?<br />4.怎样~写一个程序,把一个有序整数数l放C叉树中? <br />5.怎样从顶部开始逐层打印二叉树结Ҏ据?LE?<br />6.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件ƈ考虑I链表)Q?/p> <p><br />99.W?l微软面试题<br />1.烧一根不均匀的Q从头烧到尾d需?个小时?br />现在有若q条材质相同的子,问如何用烧的方法来计时一个小时十五分钟呢Q?br />2.你有一桶果冻,其中有黄艌Ӏ绿艌Ӏ红色三U,闭上眼睛抓取同种颜色的两个?br />抓取多少个就可以定你肯定有两个同一颜色的果冻?Q?U?1分钟Q?<br />3.如果你有无穷多的_一?公升的提捅,一?公升的提捅,两只提捅形状上下都不均匀Q?br />问你如何才能准确U出4公升的水Q(40U?3分钟Q?<br />一个岔路口分别通向诚实国和说谎国?br />来了两个人,已知一个是诚实国的Q另一个是说谎国的?br />诚实国永q说实话Q说谎国永远说谎话。现在你要去说谎国,<br />但不知道应该走哪条\Q需要问q两个h。请问应该怎么问?Q?0U?2分钟Q?</p> <p><br />100.W?l微软面试题Q挑战思维极限<br />1.12个球一个天qI现知道只有一个和其它的重量不同,问怎样U才能用三次找到那个球?/p> <p>13个呢Q(注意此题q未说明那个球的重量是轻是重Q所以需要仔l考虑Q(5分钟-1时Q?<br />2.?个点上画10条直U,要求每条直线上至有三个点?Q?分钟-20分钟Q?<br />3.在一天的24时之中Q时钟的旉、分针和U针完全重合在一L时候有几次Q?br />都分别是什么时_你怎样出来的Q(5分钟-15分钟Q?/p> <p> </p> <p>l结附加题:<br />微Y面试题,挑战你的智商<br />==========<br />说明Q如果你是第一ơ看到这U题Qƈ且以前从来没有见q类似的题型Q?br />q且能够在半个小时之内做出答案,说明你的智力常..Q?br />1.W一?. 五个L抢到?00颗宝矻I每一颗都一样大和价D城。他们决定这么分Q?<br />抽签军_自己的号码(1????Q?<br />                          <br />首先Q由1h出分配方案,然后大家表决Q当且仅当超q半数的人同意时Q?br />按照他的Ҏq行分配Q否则将被扔q大喂鲨鱼 <br />如果1h后,再由2h出分配方案,然后剩下?行表冻I<br />当且仅当过半数的h同意Ӟ按照他的Ҏq行分配Q否则将被扔入大喂鲨鱼?</p> <p>依此cL <br />条gQ每个v盗都是很聪明的hQ都能很理智地做出判断,从而做出选择?br />问题Q第一个v盗提出怎样的分配方案才能自己的收益最大化Q?/p> <p> </p> <p>2.一道关于飞机加油的问题Q已知: <br />每个飞机只有一个a,  <br />飞机之间可以怺加aQ注意是怺Q没有加ҎQ?nbsp; <br />一a可供一枉机绕地球飞半圈, <br />问题Q?br />Z臛_一枉机绕地球一圈回到v飞时的飞机场Q至需要出动几枉机?<br />Q所有飞Z同一机场起飞Q而且必须安全q回机场Q不允许中途降落,中间没有飞机场) <br />  //Ƣ迎Q关注另外不同的更精彩的100题V0.2版,和此V0.1版的{案{后l内宏V?/p> <p> 本微软等面试100题系列V0.1版,完?/p> <p> </p> <p>===================</p> <p>  关于本微软等公司数据l构+法面试100题V0.1?nbsp; </p> <p>  1.关于本微软等100题系列V0.1版的郑重声明       </p> <p>  <a ><font color="#37708b">http://blog.csdn.net/v_JULY_v/archive/2010/12/02/6050133.aspx</font></a><br />  2.所有的资源下蝲Q题?{案Q地址Q?nbsp; </p> <p>  <a href="http://v_july_v.download.csdn.net/"><font color="#37708b">http://v_july_v.download.csdn.net/</font></a></p> <p><br />  3.本微软等100题系列V0.1版,怹l护地址Q?nbsp;      </p> <p>  <a ><font color="#37708b">http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html</font></a><br />  4.一切的详情Q还是在本博客里?/p> <p>  本博客致力于数据l构之法、算法优化之?nbsp; </p> <p>  请参见本人博客:</p> <p>  My BlogQ?nbsp; </p> <p>  <a ><font color="#37708b">http://blog.csdn.net/v_JULY_v</font></a></p> <p> ==============================================================</p> <p><br /> </p> <p>                 致各位网?/p> <p>一、首先感谢各位,一路来Ҏ微Y{?00题系列的支持。谢谢大家?/p> <p> </p> <p>二、欢q,希望Q各位网友能更多的、更好的提出你的个h思\、算法,</p> <p>    思\回复地址Q?/p> <p>    本微软等100题系列V0.1版,怹l护地址</p> <p>   <a ><font color="#37708b">http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html</font></a></p> <p>    谢谢?/p> <p> </p> <p><br /> </p> <p>三、本微Y{?00题系列,以后会陆箋推出V0.2版,V0.3版,V最l完版Q?/p> <p>    接下来,我将会不断出同样来自微Y{数家大公司更具价值更_ֽ的另外不同的100道题Q?/p> <p>    Pl箋x。谢谢?/p> <p> </p> <p>四、最后,我将把我q所有的工作Q整理成一本PDF完整书,攑֜|上免费阅读?/p> <p>    以最大的无私Q奉献给各位最热心的网友们。谢谢,你们?/p> <p> </p> <p>五、而后Q请大家务必重本hq?个月的劳动成果。不Z是引用我帖子上,博客上,</p> <p>q是各资源上的题目或{案Q?/p> <p>    凡是以July为名发表的博客、帖子,资源Q引用都h明作者本人July及出处?/p> <p>若私自据为己有者,不标明出处及作者本人,必究?/p> <p>向您的厚道,致以最崇高的敬意?/p> <p> </p> <p>六、目前,针对?00题系列,我已Z?00题系列各版本l护l,</p> <p>    专门针对q?00题各个版本进行维护、修正,若哪位也有此意愿的,Ƣ迎联系我?/p> <p>    My BlogQ?/p> <p>    <a ><font color="#37708b">http://blog.csdn.net/v_JULY_v</font></a><br />  //预计本微软等面试100题系列V0.2版,怿Q会在明q?011q与大家见面Q具体待定?/p> <p> </p> <p>  再会?D?/p> <p> </p> <p> </p> <p>本文来自CSDN博客Q{载请标明出处Q?a ><font color="#37708b">http://blog.csdn.net/v_JULY_v/archive/2010/12/06/6057286.aspx</font></a></p><img src ="http://www.tkk7.com/china-qd/aggbug/351072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/china-qd/" target="_blank">沉思的?/a> 2011-05-26 13:22 <a href="http://www.tkk7.com/china-qd/archive/2011/05/26/351072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>正整C数字1的计数问?[C++]http://www.tkk7.com/china-qd/archive/2011/05/25/351016.html沉思的?/dc:creator>沉思的?/author>Wed, 25 May 2011 09:51:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/25/351016.htmlhttp://www.tkk7.com/china-qd/comments/351016.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/25/351016.html#Feedback3http://www.tkk7.com/china-qd/comments/commentRss/351016.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/351016.html/**//********************************************************************     ...  阅读全文

]]>
[转]׃个日? 怎样知道是星期几Q?http://www.tkk7.com/china-qd/archive/2011/05/24/350940.html沉思的?/dc:creator>沉思的?/author>Tue, 24 May 2011 08:59:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/24/350940.htmlhttp://www.tkk7.com/china-qd/comments/350940.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/24/350940.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/350940.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/350940.html
    int dayofweek(int y, int m, int d)  /* 0 = Sunday */
    {
      
static int t[] = {032503514624};
      y 
-= m < 3;
      
return (y + y/4 - y/100 + y/400 + t[m-1+ d) % 7;
    }



]]>
[转]什么是 ``辑֤讑֤" (Duff's Device)Q?(switch case 嵌套 whileQ复制数l?http://www.tkk7.com/china-qd/archive/2011/05/24/350939.html沉思的?/dc:creator>沉思的?/author>Tue, 24 May 2011 08:58:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/24/350939.htmlhttp://www.tkk7.com/china-qd/comments/350939.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/24/350939.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/350939.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/350939.html
    register n = (count + 7/ 8;   /* count > 0 assumed */
    
switch (count % 8)
    {
    
case 0:    do { *to = *from++;
    
case 7:     *to = *from++;
    
case 6:     *to = *from++;
    
case 5:     *to = *from++;
    
case 4:     *to = *from++;
    
case 3:     *to = *from++;
    
case 2:     *to = *from++;
    
case 1:     *to = *from++;
          } 
while (--> 0);
    }
q里 count 个字节从 from 指向的数l复制到 to 指向的内存地址 (q是个内存映的输出寄存? q也是ؓ什么它没有被增?。它? swtich 语句和复?nbsp;8 个字节的循环交织在一? 从而解决了剩余字节的处理问?nbsp;(?nbsp;count 不是 8 的倍数?。相信不怿, 象这L? case 标志攑֜嵌套?nbsp;swtich 语句内的模块中是合法的。当他公布这个技巧给 C 的开发者和世界? Duff 注意?nbsp;C ?nbsp;swtich  语法, 特别?nbsp;``跌落" 行ؓ, 一直是被争议的, ?nbsp;``q段代码在争Z形成了某U论? 但我不清楚是赞成q是反对"?

]]>
[微Y]在各U字W串cd之间q行转换http://www.tkk7.com/china-qd/archive/2011/05/23/350851.html沉思的?/dc:creator>沉思的?/author>Mon, 23 May 2011 09:12:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/23/350851.htmlhttp://www.tkk7.com/china-qd/comments/350851.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/23/350851.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/350851.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/350851.html阅读全文

]]>
[转]6个变态的C语言Hello WorldE序http://www.tkk7.com/china-qd/archive/2011/05/19/350568.html沉思的?/dc:creator>沉思的?/author>Thu, 19 May 2011 02:12:00 GMThttp://www.tkk7.com/china-qd/archive/2011/05/19/350568.htmlhttp://www.tkk7.com/china-qd/comments/350568.htmlhttp://www.tkk7.com/china-qd/archive/2011/05/19/350568.html#Feedback0http://www.tkk7.com/china-qd/comments/commentRss/350568.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/350568.html阅读全文

]]>
聪明人的游戏——猜数字http://www.tkk7.com/china-qd/archive/2011/04/26/349006.html沉思的?/dc:creator>沉思的?/author>Tue, 26 Apr 2011 01:21:00 GMThttp://www.tkk7.com/china-qd/archive/2011/04/26/349006.htmlhttp://www.tkk7.com/china-qd/comments/349006.htmlhttp://www.tkk7.com/china-qd/archive/2011/04/26/349006.html#Feedback3http://www.tkk7.com/china-qd/comments/commentRss/349006.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/349006.html
——————?问题——————?
教授选出两个??的数Q把它们的和告诉学生Ԍ把它们的U告诉学生乙Q让他们轮流猜这两个数?br /> 甲说Q?#8220;我猜不出”?br /> 乙说Q?#8220;我猜不出”?br /> 甲说Q?#8220;我猜C”?br /> 乙说Q?#8220;我也猜到?#8221;?br /> 问这两个数是多少 ?br /> QPSQ此处是我加的,假设甲乙是绝对聪明而且没有_心犯错才说Z面的话的Q?br /> ——————?解答——————?

我的解答Q?br /> 甲说Q?#8220;我猜不出”。  ?//此句说明 和theSum可以分解?个及以上?-9数字?
乙说Q?#8220;我猜不出”。  ?//此句说明 UtheMul可以分解?个及以上?-9数字U,且有臛_两组分解的因子和要满①
甲说Q?#8220;我猜C”。  ?//此句说明 和theSum的分解组合中Q有且只有一U组合对应的U满②
乙说Q?#8220;我也猜到?#8221;。 ?//此句说明 UtheMul的分解组合中Q有且只有一U组合对应的和满③

如此以来E序可以实CQ如果一个一个列出来再查扄果也可以Q但是那是小学生的做法?br /> 注意要考虑的是q两个数字是否可以相同?

]]>
火Rq煤问题http://www.tkk7.com/china-qd/archive/2011/04/22/348773.html沉思的?/dc:creator>沉思的?/author>Fri, 22 Apr 2011 02:28:00 GMThttp://www.tkk7.com/china-qd/archive/2011/04/22/348773.htmlhttp://www.tkk7.com/china-qd/comments/348773.htmlhttp://www.tkk7.com/china-qd/archive/2011/04/22/348773.html#Feedback4http://www.tkk7.com/china-qd/comments/commentRss/348773.htmlhttp://www.tkk7.com/china-qd/services/trackbacks/348773.html
你是p的一个煤老板Q你在矿区开采了?000吨煤需要运送到市场上去卖,从你的矿区到市场?000公里Q你手里有一列烧煤的火RQ这个火车最多只能装1000吨煤Q且其能耗比较大——每一公里需要耗一吨煤。请问,作ؓ一个懂~程的煤老板的你Q你会怎么q送才能运最多的煤到集市Q?/div>
q个问题其实是大家想得复杂了Q我没看{案Q我自己觉得q个题很?br />
首先假设最后剩下N吨煤Q那么N一定会于1000Qؓ什么呢Q留你自p虑Q随着你看下文Q你也会惛_Z么)
最后一D运输一定是无往q的Q这h会得消耗最,假设最后一D\长ؓM1距离Q那么在最后一D运输v点S1时剩煤N+M1
倒数W二D\Q即S1前一D\M2(L为S2)Q一定是q输了两ơ,也就是走?*M2Q在此段的v点剩煤N+M1+3*M2
倒数W三D\Q即S2前一D\M3(L为S3)Q一定是q输了三ơ,也就是走?*M3Q在此段的v点剩煤N+M1+3*M2+5M3
……
所以v炚w?000=N+M1+3*M2+5M3+7M4+……
很明显运输过E中每一D\来回数少消费少Q从出发点开始,W一D\应该是运输了3?3000/1000=3)
?000=N+M1+3*M2+5M3
总距?000=M1+M2+M3
W二D\L处,必然不能大于2000吨,按照来回数最消耗最的观点Q那么第一?倍消耗\E应该消耗了1000Q?000-2000Q吨煤,卌L1000/5=200公里
同理Q第三段路v点处Q必然不能大?000吨,所以第二段路长度ؓ(2000-1000)/3=333.333
最后一D\长ؓ1000-200-333.333=466.666
所以ȝ剩余x大可q输到目的地的煤?最后一Dv点的?000?最后一D\消?1000-466.666=533.333





]]> վ֩ģ壺 ڵƵѲ| Ůʮ·Ůbbw| ww4545Ļѵַ| ޽Сxxxxɫ| ޹˾ƷŮ˾þþ | ŷ͵ҹɫ| ձһ岻| ɫƵվ| ձۺϸ| ˾þô߽| | ˳Ƶ| ŷձ| ɫַ| Ұ߹ۿ| һaƬþëƬѿ| ۺɫ| ߿hƬ| 99þֻƷ| ëƬؿ| Ůwwwһ| ޹ŮaaaëƬ| ѹۿһëƬ| ޴Ƭѹۿ| ƷһѲ| һĻ߹ۿ| 97seۺ| þþѹۿ| 99ƷѹۿƵ| һëƬѲһ| 99999þþþþ| þþþAVվ| vƬ߹ۿڵ| ëƬȫѹۿ| 18Ůվ| йѹۿ߹ۿ| WWW޾Ʒþ鶹| ĻĻɫ| þþþAV鶹| AVô뾫Ʒ| ձ|