First Position of Target

First position of Target.png

===================== 解題思路 =====================

BS 方式尋找到 target, 但是這次可能會(huì)有重複的數(shù)字存在 所以需要找到的是index 最小的target 位置 所以在找到 target 之後並不中斷 loop, 繼續(xù)壓縮範(fàn)圍往 target 集中 最後在 while loop 設(shè)定的條件下結(jié)束時(shí) 照順序檢查 left 跟 right 是否為 target (left 優(yōu)先) 如果都沒(méi)有回傳 -1

===================== C++ code ====================

<pre><code>
class Solution {

public:

/**
 * @param nums: The integer array.
 * @param target: Target number to find.
 * @return: The first position of target. Position starts from 0. 
 */
int binarySearch(vector<int> &array, int target) {
    // write your code here
    int left = 0, right = array.size() - 1;
    while(left + 1 < right)
    {
        int mid = left + (right - left) / 2;
        if(array[mid] >= target) right = mid;
        else left = mid;
    }
    if(array[left] == target) return left;
    if(array[right] == target) return right;
    return -1;
}

};
<code><pre>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 【題目描述】 For a given sorted array (ascending order) and a t...
    代碼碼著玩閱讀 243評(píng)論 0 0
  • 原題 給定一個(gè)排序的整數(shù)數(shù)組(升序)和一個(gè)要查找的整數(shù)target,用O(logn)的時(shí)間查找到target第一次...
    Jason_Yuan閱讀 585評(píng)論 0 1
  • 博瑜閱讀 266評(píng)論 0 0
  • 走路要領(lǐng) 兒子的武術(shù)社的老師要兒子問(wèn)我走路的要領(lǐng)。因?yàn)樗牢矣幸环N有別於一般步態(tài)的走法,也相當(dāng)於一種走路練功。我...
    松本靜閱讀 1,269評(píng)論 0 3
  • Chapter 1 “我喜歡它,”小凱文伸手輕觸俯臥在地上的狗,“它叫什麼名字?” “她的名字叫貝拉,”蘇姍微笑道...
    楊二聽(tīng)閱讀 676評(píng)論 0 2