微軟面試題(收集)

2021-05-28 05:16:46 字數 1410 閱讀 2797

1、在排序陣列中,找出給定數字的出現次數,比如 [1, 2, 2, 2, 3] 中2的出現次數是3次。

#include extern int low=0,high=10,mid=0;

void find(int *a,int p)//找到p的其中位置

else low=mid; }}

int tosit(int *a,int p)//以p為中心向兩邊擴散

else

}if(j<=high)

else}}

return counter;

}void main()

; int p=9;

int k;

find(a,p);

k=tosit(a,p);

printf("%d出現了%d次",p,k);

}

演算法複雜度為o(logn)。

2、反序乙個單向鍊錶

(本題做法**:

怎麼做呢?最簡單的就是在建立乙個鍊錶...不停的插入乙個head就可以了...那必須用到兩個額外變數...不過很好理解...baihowff今天發的顯然不是這個方法...baihowff給出的方法只用增加乙個臨時變數p就可以實現了...怎麼實現呢?

我先簡單說一下演算法...其實就是將p先指向head->next ,再將head->next賦為null,再執行迴圈while(p!=null)時交換head和p->next 以及 head和p就可以了...其實就是將p儲存下乙個鍊錶元素..然後反覆的往head前新增...這個演算法其實和用兩個的思想一樣..但是寫起來很巧妙...先給出完整程式吧...

#include using namespace std; 

struct node

; typedef node* pnode;

pnode reverse(pnode head);

void printlist(pnode head);

int main(int argc,char* argv)

pnode reverse(pnode head)

// 防止記憶體洩露

delete p;

p=null;

// 實現鏈式操作

return head;

}

void printlist(pnode p)

cout<

3、寫出正規表示式,從乙個字串中提取鏈結位址。比如下面字串中

"it面試題部落格中包含很多  微軟面試題

> 微軟面試題 "

則需要提取的位址為 "

微軟面試題

"使用linux的awk方法:

awk -f'[<>]' '' 檔名|grep 'http.*'

面試題收集

1.實現乙個add方法 add 1 2,3 4 value 輸出 10 分析 對柯里化函式進行改造 原curry函式 function curry f,args1 return inner 改造後curry函式 function curry f,args1 新增value方法 inner.value...

微軟面試題

題目 小明和小強都是張老師的學生,張老師的生日是m月n日,2人都知道張老師的生日是下列10組中的一天,張老師把m值告訴了小明,把n值告訴了小強,張老師問他們知道他的生日是那一天嗎?3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 小明說 如果我...

微軟面試題

fly.c4 推薦您必看!六.演算法題 說明 這些題就不是什麼花樣了,考的是你的基礎知識怎麼樣。再聰明而沒有實學的人都將會被這些題所淘汰。1.鍊錶和陣列的區別在 2.編寫實現鍊錶排序的一種演算法。說明為什麼你會選擇用這樣的方法?3.編寫實現陣列排序的一種演算法。說明為什麼你會選擇用這樣的方法?4.請...