《劍指offer》Q13 18 牛客10 13

2022-08-24 02:57:18 字數 1687 閱讀 1980

目錄

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

方法1:新開陣列,先新增奇數,再新增偶數。**略。

方法2:

/**

* 1.要想保證原有次序,則只能順次移動或相鄰交換。

* 2.i從左向右遍歷,找到第乙個偶數。

* 3.j從i+1開始向後找,直到找到第乙個奇數。

* 4.將[i,...,j-1]的元素整體後移一位,最後將找到的奇數放入i位置,然後i++。

* 5.終止條件:j向後遍歷查詢失敗。

*/public void reorderarray2(int a)

a[i++] = tmp;

}else

}}boolean iseven(int n)

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

這道題去南大面試還被問了,兩個指標的思路不錯,但是涉及指標的細節很多,容易寫崩。。。

/*

首先要判斷指標是否為空,以及k是否大於0!!

然後p1移到最後乙個為止,不能指到空

*/class solution

p1=p1->next;

}while(p1->next != null)

return p2;

}};

用頭插法新建了乙個鍊錶。當然不新開鍊錶是可以的,似乎正解也是這樣。。然後遞迴也可以但沒必要。

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

/*

a: 考歸併操作。

t: 要時刻記得指標所指的結點,不要漏掉!

*/class solution else

p3 = p3->next;

p3->next = null;

}if(p1)else if(p2)

return newlist->next;

}};

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)

/**

a: 兩個步驟:1.【包不包括】判斷頂點值是否相同

2.【是不是】頂點值的情況下a與b能不能對應上(注意a可能是大於b的

*/public class solution

private boolean issubtree(treenode root1,treenode root2)

}

操作給定的二叉樹,將其變換為源二叉樹的映象。

二叉樹的映象定義:源二叉樹 

8/ \

6 10

/ \ / \

5 7 9 11

映象二叉樹

8/ \

10 6

/ \ / \

11 9 7 5

public class solution 

}

《劍指offer》Q01 12 牛客10 11

目錄在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。由於矩陣部分有序,向上數字遞減,向右數字遞增 目標數字只會出現在行首小於該數的行中 遍歷行i 若列j 對應...

牛客網 劍指offer 遞迴 (1)

出現的問題 原因 返回值沒有考慮到所有情況 輸入引數n是乙個整數,自己只考慮n 0,n 1,n 2,n 39的情況,一直報錯。改正方案 加上else,判斷其他情況均輸出0,編譯通過 菲波那切數列數列有很多變形的問題 問題1 兔子問題 題目描述 已知一對兔子每乙個月可以生一對小兔子,而一對兔子出生後....

牛客網 劍指offer,solution1

標題1.在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。本道演算法題,從題目中我們可以看到,這個陣列有一定的規律,所以我們可以這樣想,當target比arra...