目錄
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。方法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...