劍指offer刷題

2021-10-05 12:51:00 字數 2166 閱讀 4617

面試題6:從尾到頭列印鍊錶

/**

* struct listnode

* };

*/class

solution

reverse

(res.

begin()

, res.

end())

;return res;}}

;

替換空格
class

solution

int newnumstr = numstr + numspace *2;

if(newnumstr > length)

return

;while

(numstr >=

0&& newnumstr > numstr)

else str[newnumstr--

]= str[numstr]

; numstr--;}

}};

重建二叉樹
/**

* definition for binary tree

* struct treenode

* };

*/class

solution

vector<

int> preleft, preright, vinleft, vinright;

for(

int i =

0; i < rootindex;

++i)

for(

int j = rootindex+

1; j < pre.

size()

;++j)

treenode *head =

newtreenode

(rootval)

; head-

>left =

reconstructbinarytree

(preleft, vinleft)

; head-

>right =

reconstructbinarytree

(preright, vinright)

;return head;}}

;

旋轉陣列的最小數字
class

solution

return rotatearray[lo];}

};

調整陣列順序使奇數字於偶數前面

穩定的寫法如下:

class

solution

for(

int i =

0; i <= n;

++i)}}

;

注意 c++ 是不支援 -1 這種索引的。

鍊錶中倒數第k個結點

這道題本身不難,但是要注意三個 edge case,否則無法通過 oj:

/*

struct listnode

};*/

class

solution

while

(fast)

return slow;}}

;

樹的子結構

/*

struct treenode

};*/

class

solution

return res;

}bool

helper

(treenode *a, treenode *b)

};

二叉樹的映象
/*

struct treenode

};*/

class

solution}}

};

順時針列印矩陣

解題思路參見:

**就看下邊這個就可以。

class

solution

return res;}}

;

棧的壓入、彈出序列
class

solution

}return i == popv.

size()

;}};

劍指offer刷題

原題鏈結 動態規劃 class solution dp for int i 1 i len1 i else if p j 1 else return dp len1 len2 原題鏈結 數學推導 找規律 class solution else if n 3 2 return ipow 3 numso...

劍指offer刷題 2

思路 如果從前往後進行遍歷,那麼每次找到乙個空格,則需要新增兩個位元組來進行替換,我們採用先對字串進行遍歷,查詢字串中的空格的個數,然後對新的字串進行長度的計算,然後從後往前進行替換,每遇到乙個空字元,然後進行替換。class solution int oldnumber 0 int numbers...

劍指offer刷題筆記

給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。struct treenode class solution treenode kthnode treenode proot,int k 非遞迴實現 class solution...