最全的《劍指offer》題目解析 C

2021-10-18 16:35:04 字數 1497 閱讀 3828

題目1定義乙個空的型別,裡面沒有任何的成員變數和成員函式,對該型別求sizeof,結果是多少?

答案:1

追問:為什麼不是0?

答案:空型別的例項中不包含任何資訊,本來求sizeof應該是0,但是當我們宣告該型別的例項的時候,它必須在記憶體中占有一定的空間,否則無法使用這些例項。至於占用多少記憶體,由編譯器決定。visual studio中每個空型別的例項占用1位元組的空間。

追問:如果在該型別中新增乙個建構函式和析構函式,再對該型別求sizeof,得到的結果又是多少?

追問:那如果把析構函式標記為虛函式呢?

答案:c++的編譯器一旦發現乙個型別中有虛函式,就會為該型別生成虛函式表,並在該型別的每乙個例項中新增乙個指向虛函式表的指標。在32位的機器上,乙個指標佔4位元組的空間,因此求sizeof得到4;如果是64位的機器,乙個指標佔8位元組的空間,因此求sizeof則得到8。

注:題目兩字紅色加粗字型為,問題為紅色加粗字型,黑色字型為解答(重點用藍色標出),追問為橘紅不加粗字型。

題目3:二維陣列中的查詢

題目4:替換空格

題目5:從尾到頭列印鍊錶

題目6:重建二叉樹

題目7:兩個棧實現佇列

題目8:旋轉陣列的最小數字

題目9:菲波那切數列 & 青蛙跳台階

題目10:二進位制中1的個數

題目11:數值的整數次方

題目12:列印從1到最大的n位數

題目13:在o(1)時間內刪除鍊錶中的節點

題目14:調整陣列順序是奇數字於偶數前面

題目15:鍊錶中倒數第k個節點

題目16:反轉鍊錶

題目17:合併兩個有序鍊錶

題目18:樹的子結構

題目19:二叉樹的映象

題目20:順時針列印矩陣

題目22:棧的壓入和彈出序列

題目23:從上往下列印二叉樹

題目26:複雜鍊錶的複製

題目29:陣列**現次數超過陣列長度一半的數字

題目30:最小的k個數

題目31:連續子陣列的最大和

題目35:第乙個只出現一次的字元

劍指offer題目

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣...

劍指offer的題目

題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。分析 跳乙個n階台階的方法數 class solution 題目描述 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總...

劍指OFFER 題目review

劍指offer ac 三道題,現在review下 題目一 從尾到頭列印鍊錶 輸入乙個鍊錶,按煉錶值從尾到頭的順序返回乙個arraylist。我的思路 1.鍊錶值從頭到尾順序放入vector中 2.逆序vector 實現 class solution int size data.size for in...