劍指Offer Java實現 3

2021-09-24 04:08:10 字數 1434 閱讀 7748

12.數值的整數次方

題目描述:

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。

思路1:

n的a次冪,3種情況

a > 0,正常算

a = 0,永遠都是1

a < 0,正常算的倒數

public

class

solution

if(exponent<0)

return result;

}}

思路2:

//n為偶數,a^n=a^n/2*a^n/2;n為奇數,a^n=(a^(n-1)/2)*(a^(n-1/2)

public

class

solution

}

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

題目描述

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

思路:相對位置不變—>保持穩定性;奇數字於前面,偶數字於後面 —>存在判斷,挪動元素位置;

這些都和內部排序演算法相似,考慮到具有穩定性的排序演算法不多,例如插入排序,歸併排序等;這裡採用插入排序的思想實現。

public

class

solution

k++;}

}}}

14.鍊錶中倒數第k個節點

題目描述:

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

思路1:暴力a迴圈兩次搞定,沒難度不符**了

思路2:快慢指標

**實現:

/*

public class listnode

}*/public

class

solution

k--;}

//如果節點個數小於所求的倒數第k個節點,則返回空

if(countreturn null;

return pre;

}}

15.反轉鍊錶

題目描述

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

思路:迴圈實現,前3個反轉下就好了

public

class

solution

//如果head為null的時候,pre就為最後乙個節點了,但是鍊錶已經反轉完畢,pre就是反轉後鍊錶的第乙個節點

//直接輸出pre就是我們想要得到的反轉後的鍊錶

return pre;

}}

劍指offer Java 替換空格

注意點 public class solution int indexold str.length 1 indexold為為替換前的str下標 int newlength str.length spacenum 2 計算空格轉換成 20之後的str長度 int indexnew newlength ...

劍指Offer java實現 樹的子結構

題目 輸入兩顆二叉樹a,b,判斷b是不是a的子結構。思路 1 在樹a中找到和數b的根節點相同的節點 可以利用前序遍歷a樹中的節點,找到和b樹的根節點相同的節點。2 在樹a中找到和樹b根節點相同的節點設為r 再對比節點r在樹b中的左孩子和右孩子是否和樹b中的節點相同。如果r節點的值和樹b中的節點的值不...

劍指offer JAVA版題解(全)

序號 題解牛客 oj 資料結構型別 03 劍指offer 二維陣列中的查詢 二維陣列中的查詢 陣列04 劍指offer 替換空格 替換空格 字串05 劍指offer 從尾到頭列印鍊錶 從尾到頭列印鍊錶 鍊錶06 劍指offer 重建二叉樹 重建二叉樹樹07 劍指offer 用兩個棧實現佇列 用兩個棧...