劍指Offer 38 數字在排序陣列中出現的次數

2021-09-24 13:31:08 字數 659 閱讀 9717

題目:

統計乙個數字在排序陣列**現的次數。

方法一:二分查詢

因為陣列是排序陣列,因此我們使用二分查詢找到k,然後左右遍歷統計k的個數。

public

class

solution

int mid=

(l+r)

>>1;

if(array[mid]

else

if(array[mid]

>k)

else

for(

int j=mid-

1;j>=l;j--

)return num;}}

public

intgetnumberofk

(int

array ,

int k)

}

方法二:二分查詢改進

我們改為查詢第乙個k和最後乙個k。

public

class

solution

else

}return l;

}public

intgetnumberofk

(int

array ,

int k)

}

劍指offer 38 數字在排序陣列中出現的次數

自己的寫法 class solution int index1 getfirst data,k,0,length 1 int index2 getlast data,k,0,length 1 return exit data,k index2 index1 1 0 int getfirst vect...

劍指Offer38 平衡二叉樹

思路 判斷是否是平衡二叉樹,即判斷任何乙個節點的左子樹和右子樹的高度差的絕對值小於等於1。最直接的做法,遍歷每個結點,借助乙個獲取樹深度的遞迴函式,根據該結點的左右子樹高度差判斷是否平衡,然後遞迴地對左右子樹進行判斷。class treenode def init self,x self.val x...

劍指offer38 平衡二叉樹

題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。思路 平衡二叉樹 balanced binary tree 具有以下性質 它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。判斷兩邊高度,我這裡想著用誰子樹沒了就會在和左子樹的比較中比較會等於 1,然後...