劍指Offer題目答案收集

2021-09-28 11:19:30 字數 1770 閱讀 8400

1 陣列

1.1 二維陣列中的查詢

2 字串

2.1 替換空格

3 鍊錶

4 樹5 棧和佇列

6 查詢和排序

7 遞迴和迴圈

8 位運算

9 **的完整性

10 面試思路

11 畫圖讓抽象形象化

12 舉例讓抽象具體化

13 分解讓複雜問題簡單

14 時間效率

15 時間空間效率的平衡

16 知識遷移能力

17 綜合

18 陣列

19 字串

20 鍊錶

21 樹

22 棧和佇列

23 回溯法

24 動態規劃與貪婪

1 陣列:

二維陣列中查詢

題目描述

在乙個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

流程圖:

文字分析:

從最左下角的數值array[cows,cols=0]開始,如果目標值targetarray[cows,cols],說明target只可能在array[cows,cols]的右邊,cols+1,如此往復迴圈,知道找到target,如果找不到,超出邊界,則返回false

**實現

python版:

def find(self,target,array):

rows=len(array)-1

cols=len(array[0]

)-1 i=rows

j=0while j<=cols and i>=0:

if target

[j]:

i-=1

elif target>array[i]

[j]:

j+=1

else:

return true

return false

c++版

bool find(int target,vector

> array)

};

2.字串
public class solution 

int indexold = str.length(

)-1; //indexold為為替換前的str下標

int newlength = str.length(

) + spacenum*2;//計算空格轉換成%20之後的str長度

int indexnew = newlength-1;//indexold為為把空格替換為%20後的str下標

str.setlength(newlength)

;//使str的長度擴大到轉換成%20之後的長度,防止下標越界

for(

;indexold>=0 && indexold

else

}return str.tostring();

}}

class solution 

for(int i=length-1;i>=0;i--)

else}}

};

python版

劍指offer題目

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

劍指OFFER 題目review

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

劍指offer的題目

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