国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

84.在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置(力扣)

這篇具有很好參考價(jià)值的文章主要介紹了84.在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置(力扣)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

問題描述

代碼解決以及思想?

知識(shí)點(diǎn)?


問題描述

84.在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置(力扣),刷題,leetcode,算法,職場和發(fā)展

代碼解決以及思想?

class Solution {
public:
    vector<int> searchRange(vector<int>& nums, int target) {
        int left = 0;                      // 定義左邊界
        int right = nums.size() - 1;       // 定義右邊界

        while (left <= right) {            // 當(dāng)左邊界小于或等于右邊界時(shí),執(zhí)行循環(huán)
            int middle = left + (right - left) / 2;  // 計(jì)算中間位置,避免整數(shù)溢出

            if (nums[middle] == target) {   // 如果中間元素等于目標(biāo)
                int start = middle;         // 初始化起始和結(jié)束索引為中間索引
                int end = middle;

                // 向左搜索邊界
                while (start > 0 && nums[start - 1] == target) {
                    start--;  // 向左移動(dòng)起始索引,直到不再與目標(biāo)相等
                }

                // 向右搜索邊界
                while (end < (nums.size() - 1) && nums[end + 1] == target) {
                    end++;    // 向右移動(dòng)結(jié)束索引,直到不再與目標(biāo)相等
                }
                return {start, end};  // 返回搜索到的左右邊界
            }
            else if (nums[middle] > target) {
                right = middle - 1;        // 目標(biāo)在左半部分,更新右邊界
            }
            else {
                left = middle + 1;         // 目標(biāo)在右半部分,更新左邊界
            }
        }

        return {-1, -1};  // 如果未找到目標(biāo)元素,返回{-1, -1}表示未找到
    }
};
  1. 初始化左邊界 left 為數(shù)組的起始位置(0),右邊界 right 為數(shù)組的結(jié)束位置(nums.size() - 1)。

  2. 進(jìn)入一個(gè)循環(huán),只要左邊界 left 不大于右邊界 right,就執(zhí)行以下操作:

    a. 計(jì)算中間位置 middle,這是為了進(jìn)行二分查找,以避免整數(shù)溢出。

    b. 如果 nums[middle] 等于目標(biāo)元素 target,則表示找到了目標(biāo)元素,然后開始搜索其范圍。

    c. 初始化 startendmiddle,然后向左和向右搜索邊界:

    • 向左搜索邊界 start,通過不斷將 start 減小直到不再與目標(biāo)元素相等。
    • 向右搜索邊界 end,通過不斷將 end 增加直到不再與目標(biāo)元素相等。

    d. 返回搜索到的左右邊界,它們代表了目標(biāo)元素在數(shù)組中的范圍。

  3. 如果在循環(huán)中找到目標(biāo)元素,則會(huì)在適當(dāng)?shù)臅r(shí)候返回搜索到的范圍。

  4. 如果未找到目標(biāo)元素,循環(huán)結(jié)束后,返回 {-1, -1},表示未找到目標(biāo)元素。

知識(shí)點(diǎn)?

? ? ? ? 進(jìn)行二分查找以找到目標(biāo)元素,然后在找到目標(biāo)元素后,繼續(xù)向左和向右搜索以確定它的范圍。對(duì)于二分查找的內(nèi)容可以看看下面的鏈接:

82.二分查找-CSDN博客

寫在最后:以上就是本篇文章的內(nèi)容了,感謝你的閱讀。如果感到有所收獲的話可以給博主點(diǎn)一個(gè)贊哦。如果文章內(nèi)容有遺漏或者錯(cuò)誤的地方歡迎私信博主或者在評(píng)論區(qū)指出~文章來源地址http://www.zghlxwxcb.cn/news/detail-736179.html

到了這里,關(guān)于84.在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置(力扣)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 二分查找實(shí)例1(在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置)

    二分查找實(shí)例1(在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置)

    給你一個(gè)按照非遞減順序排列的整數(shù)數(shù)組? nums ,和一個(gè)目標(biāo)值? target 。請(qǐng)你找出給定目標(biāo)值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標(biāo)值? target ,返回? [-1, -1] 。 你必須設(shè)計(jì)并實(shí)現(xiàn)時(shí)間復(fù)雜度為? O(log n) ?的算法解決此問題。 示例 1: 示例?2: 示例 3: 提示

    2024年02月09日
    瀏覽(21)
  • 在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置——力扣34
  • 在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置(Java詳解)

    在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置(Java詳解)

    給你一個(gè)按照 非遞減 順序排列的整數(shù)數(shù)組? nums ,和一個(gè)目標(biāo)值? target 。請(qǐng)你找出給定目標(biāo)值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標(biāo)值? target ,返回? [-1, -1] 。 你必須設(shè)計(jì)并實(shí)現(xiàn)時(shí)間復(fù)雜度為 ? O(log n) ?的算法解決此問題。 示例: 輸入:nums = [5,7,7,8,8

    2024年02月03日
    瀏覽(28)
  • LeetCode 34 在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置

    在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置 給你一個(gè)按照非遞減順序排列的整數(shù)數(shù)組 nums ,和一個(gè)目標(biāo)值 target 。請(qǐng)你找出給定目標(biāo)值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標(biāo)值 target ,返回 [-1, -1] 。 你必須設(shè)計(jì)并實(shí)現(xiàn)時(shí)間復(fù)雜度為 O(log n) 的算法解決此

    2024年02月02日
    瀏覽(25)
  • 【算法Hot100系列】在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置

    【算法Hot100系列】在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置

    ??????歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識(shí),也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續(xù)學(xué)習(xí),不斷總結(jié),共同進(jìn)步,活到老學(xué)到老 導(dǎo)航 檀越劍指大廠系列:全面總

    2024年02月02日
    瀏覽(28)
  • 【LeetCode】每日一題&&兩數(shù)之和&&尋找正序數(shù)組的中位數(shù)&&找出字符串中第一個(gè)匹配項(xiàng)的下標(biāo)&&在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置

    【LeetCode】每日一題&&兩數(shù)之和&&尋找正序數(shù)組的中位數(shù)&&找出字符串中第一個(gè)匹配項(xiàng)的下標(biāo)&&在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置

    ========================================================================= 主頁點(diǎn)擊直達(dá): 個(gè)人主頁 我的小倉庫: 代碼倉庫 C語言偷著笑: C語言專欄 數(shù)據(jù)結(jié)構(gòu)挨打小記: 初階數(shù)據(jù)結(jié)構(gòu)專欄 Linux被操作記: Linux專欄 LeetCode刷題掉發(fā)記: LeetCode刷題 算法: 算法專欄? C++頭疼記: C++專欄 計(jì)算機(jī)

    2024年02月08日
    瀏覽(36)
  • 「優(yōu)選算法刷題」:在排序數(shù)組中查找元素的第一個(gè)和最后個(gè)位置

    「優(yōu)選算法刷題」:在排序數(shù)組中查找元素的第一個(gè)和最后個(gè)位置

    給你一個(gè)按照非遞減順序排列的整數(shù)數(shù)組? nums ,和一個(gè)目標(biāo)值? target 。請(qǐng)你找出給定目標(biāo)值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標(biāo)值? target ,返回? [-1, -1] 。 你必須設(shè)計(jì)并實(shí)現(xiàn)時(shí)間復(fù)雜度為? O(log n) ?的算法解決此問題。 示例 1: 示例?2: 示例 3: 二分

    2024年01月22日
    瀏覽(23)
  • 【leetcode題解C++】34.在排序數(shù)值中查找第一個(gè)和最后一個(gè)位置

    給你一個(gè)按照非遞減順序排列的整數(shù)數(shù)組? nums ,和一個(gè)目標(biāo)值? target 。請(qǐng)你找出給定目標(biāo)值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標(biāo)值? target ,返回? [-1, -1] 。 你必須設(shè)計(jì)并實(shí)現(xiàn)時(shí)間復(fù)雜度為? O(log n) ?的算法解決此問題。 示例 1: 示例?2: 示例 3: 思路

    2024年01月16日
    瀏覽(23)
  • 【LeetCode】2619. 數(shù)組原型對(duì)象的最后一個(gè)元素

    【LeetCode】2619. 數(shù)組原型對(duì)象的最后一個(gè)元素

    請(qǐng)你編寫一段代碼實(shí)現(xiàn)一個(gè)數(shù)組方法,使任何數(shù)組都可以調(diào)用 array.last() 方法,這個(gè)方法將返回?cái)?shù)組最后一個(gè)元素。如果數(shù)組中沒有元素,則返回 -1 。 你可以假設(shè)數(shù)組是 JSON.parse 的輸出結(jié)果。 示例 1 : 輸入: nums = [null, {}, 3] 輸出: 3 解釋:調(diào)用 nums.last() 后返回最后一個(gè)元

    2024年01月21日
    瀏覽(26)
  • JavaScript 中獲取數(shù)組最后一個(gè)元素3種方法及性能

    JavaScript 中獲取數(shù)組最后一個(gè)元素3種方法及性能

    當(dāng)需要從 JavaScript 中的數(shù)組中獲取最后一個(gè)元素時(shí),有多種選擇,本文將提供 3 種可用方法。 1. 數(shù)組 length 屬性 length 屬性返回?cái)?shù)組中元素的數(shù)量。從數(shù)組的長度中減去 1 得到數(shù)組最后一個(gè)元素的索引,使用它可以訪問最后一個(gè)元素。從長度中減去 1 的原因是,在 JavaScript 中

    2024年02月06日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包