數字在排序數組中出現的次數——劍指offer

書上寫的是遞歸法,我的更喜歡循環寫二分查找。 這道題給的有序數組第一思路是二分查找k,而後向兩側掃描找到起點終點,但這樣時間複雜度是O (n). 巧妙地思路是兩次二分查找,第一次找first第一次出現的下標,只須要把二分查找條件變一下就行了,第二次找last,最後返回last - first +1. 這裏的陷阱是若是數組裏沒有這個數,就會返回1,把first設爲-1若是沒找到返回0.web int
相關文章
相關標籤/搜索