原创 10.翻轉句子中單詞的順序

 題目:輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。句子中單詞以空格符隔開。爲簡單起見,標點符號和普通字母一樣處理。例如輸入“I am a student.”,則輸出“student. a am I”。分析:由於編寫字

原创 30.從1到n的正數中1出現的次數

  首先觀察N=123456的情況:十萬位1的個數:    23456+1 = 23457萬位   1的個數:    (1+1)*10000 = 20000千位   1的個數:    (12+1)*1000 =  13000百位   1的

原创 28.整數的二進制表示中1 的個數

這一題好像很經典啊,5月分騰訊面試的時候還問過這個題目,而且這個題在筆試裏也出過,只不過是形式變了!  題目:輸入一個整數,求該整數的二進制表達中有多少個1。例如輸入10,由於其二進制表示爲1010,有兩個1,因此輸出2。分析:這是一道很

原创 程序員必看 c++筆試題彙總

本文通過對程序員筆試過程的總結,對程序員c++筆試題進行了彙總。希望能與大家共同分享。下面是一些常見題型: 1.求下面函數的返回值(微軟) {  int countx = 0;  while(x)  {  countx ++;  x = 

原创 c++位運算

 什麼是位(bit)? 很簡單,位(bit)就是單個的0或1,位是我們在計算機上所作一切的基礎。計算機上的所有數據都是用位來存儲的。一個字節(BYTE

原创 4.在二元樹中找出和爲某一值的所有路徑

 題目:輸入一個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。打印出和與輸入整數相等的所有路徑。例如輸入整數22和如下二元樹                                     

原创 29.棧的push、pop 序列

 題目:輸入兩個整數序列。其中一個序列表示棧的push 順序,判斷另一個序列有沒有可能是對應的pop 順序。如果我們希望pop 的數字正好是棧頂數字,直接pop 出棧即可;如果希望pop 的數字目前不在棧頂,我們就到push 序列中還沒有

原创 感謝聲明

   微軟、谷歌、百度等公司經典面試100題作者:July、Sorehead。時間:二零一一年三月二十五日。出處:http://blog.csdn.n

原创 2.設計包含min函數的棧

 題目:定義棧的數據結構,要求添加一個min函數,能夠得到棧的最小元素。要求函數min、push以及pop的時間複雜度都是O(1) 藉助輔助棧,保存最小值,且隨時更新輔助棧中的元素。如先後,push 2 6 4 1 5stack A  s

原创 3.求子數組的最大和

 題目:輸入一個整形數組,數組裏有正數也有負數。數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。           求所有子數組的和的最大值。要求時間複雜度爲O(n)。例如輸入的數組爲1, -2, 3, 10, -4,

原创 16.從上往下遍歷二元樹

 題目:輸入一顆二元樹,從上往下按層打印樹的每個結點,同一層中按照從左往右的順序打印。 例如輸入      8    /  \   6    10  /\     /\5  7   9  11輸出8   6   10   5   7   

原创 18.圓圈中最後剩下的數字

 題目:n個數字(0,1,…,n-1)形成一個圓圈,從數字0開始,每次從這個圓圈中刪除第m個數字(第一個爲當前數字本身,第二個爲當前數字的下一個數字)。當一個數字刪除後,從被刪除數字的下一個繼續刪除第m個數字。求出在這個圓圈中剩下的最後一

原创 27.跳臺階問題

 題目:一個臺階總共有n 級,如果一次可以跳1 級,也可以跳2 級。求總共有多少總跳法,並分析算法的時間複雜度。首先我們考慮最簡單的情況。如果只有1 級臺階,那顯然只有一種跳法。如果有2 級臺階,那就有兩種跳的方法了:一種是分兩次跳,每次

原创 25.找出字符串中的最長數字串

 寫一個函數,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出連續最長的數字串,並把這個串的長度返回,並把這個最長數字串付給其中一個函數參數outputstr 所

原创 14.在排序數組中查找和爲給定值的兩個數字

 題目:輸入一個已經按升序排序過的數組和一個數字,在數組中查找兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是O(n)。如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入數組1、2、4、7、11、15和數字15。由於4