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的大矩形,總...