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

每天一道leetcode:劍指 Offer 53 - I. 在排序數(shù)組中查找數(shù)字 I(適合初學(xué)者&二分查找)

這篇具有很好參考價(jià)值的文章主要介紹了每天一道leetcode:劍指 Offer 53 - I. 在排序數(shù)組中查找數(shù)字 I(適合初學(xué)者&二分查找)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

今日份題目:

統(tǒng)計(jì)一個(gè)數(shù)字在排序數(shù)組中出現(xiàn)的次數(shù)。

示例1

輸入: nums = [5,7,7,8,8,10], target = 8
輸出: 2

示例2

輸入: nums = [5,7,7,8,8,10], target = 6
輸出: 0

提示

  • 0 <= nums.length <= 10^5

  • -10^9 <= nums[i] <= 10^9

  • nums 是一個(gè)非遞減數(shù)組

  • -10^9 <= target <= 10^9

題目思路

使用兩次二分查找找到target在數(shù)組中的左右邊界,然后長度就是右邊界減去左邊界再加一,最后返回長度即可。

代碼

class Solution 
{
public:
    int binarySearch(vector<int>& nums, int target, bool lower) 
    {//二分查找,lower為true表示查找第一個(gè)大于等于target的下標(biāo)(左端點(diǎn)),為false表示查找第一個(gè)大于target的下標(biāo)(右端點(diǎn))
        int left=0,right=nums.size()-1,ans=nums.size();
        while(left<=right) 
        {
            int mid=(left+right)/2;
            if(nums[mid]>target||(lower&&nums[mid]>=target)) 
            {//需要移到左半部分繼續(xù)二分查找
                right=mid-1;
                ans=mid;
            } 
            else //需要移到右半部分繼續(xù)二分查找
            {
                left=mid+1;
            }
        }
        return ans;
    }

    int search(vector<int>& nums, int target) 
    {
        int l=binarySearch(nums,target,true);//二分查找左端點(diǎn)
        int r=binarySearch(nums,target,false)-1;//二分查找右端點(diǎn)
        if(l<=r&&r<nums.size()&&nums[l]==target&&nums[r]==target) 
        {//如果存在這樣的全是target這個(gè)數(shù)的區(qū)間,并且未超出nums范圍,并且確定區(qū)間內(nèi)的數(shù)都是target
            return r-l+1;
        }
        return 0;//不符合返回0
    }
};

提交結(jié)果

每天一道leetcode:劍指 Offer 53 - I. 在排序數(shù)組中查找數(shù)字 I(適合初學(xué)者&二分查找),劍指Offer,leetcode,算法,數(shù)據(jù)結(jié)構(gòu),c++,職場和發(fā)展

? 歡迎大家在評論區(qū)討論,如有不懂的代碼部分,歡迎在評論區(qū)留言!文章來源地址http://www.zghlxwxcb.cn/news/detail-630577.html

到了這里,關(guān)于每天一道leetcode:劍指 Offer 53 - I. 在排序數(shù)組中查找數(shù)字 I(適合初學(xué)者&二分查找)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?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)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • 劍指 Offer 56 - I. 數(shù)組中數(shù)字出現(xiàn)的次數(shù)

    劍指 Offer 56 - I. 數(shù)組中數(shù)字出現(xiàn)的次數(shù)

    理想的人物不僅要在物質(zhì)需要的滿足上,還要在精神旨趣的滿足上得到表現(xiàn)。? ? ? ? —— 黑格爾 目錄 方法1:排序+指針 方法2:異或整個(gè)數(shù)組 題目: 一個(gè)整型數(shù)組? nums ?里除兩個(gè)數(shù)字之外,其他數(shù)字都出現(xiàn)了 兩次 。請寫程序找出這兩個(gè) 只出現(xiàn)一次的數(shù)字。 要求時(shí)間復(fù)

    2023年04月16日
    瀏覽(21)
  • (排序) 劍指 Offer 45. 把數(shù)組排成最小的數(shù) ——【Leetcode每日一題】

    (排序) 劍指 Offer 45. 把數(shù)組排成最小的數(shù) ——【Leetcode每日一題】

    難度:中等 輸入一個(gè)非負(fù)整數(shù)數(shù)組,把數(shù)組里所有數(shù)字拼接起來排成一個(gè)數(shù),打印能拼接出的所有數(shù)字中最小的一個(gè)。 示例 1: 輸入: [10,2] 輸出: “102” 示例 2: 輸入: [3,30,34,5,9] 輸出: “3033459” 提示 : 0 nums.length = 100 說明: 輸出結(jié)果可能非常大,所以你需要返回一個(gè)字符串而不

    2024年02月10日
    瀏覽(18)
  • (排序) 劍指 Offer 51. 數(shù)組中的逆序?qū)?——【Leetcode每日一題】

    (排序) 劍指 Offer 51. 數(shù)組中的逆序?qū)?——【Leetcode每日一題】

    難度:困難 在數(shù)組中的兩個(gè)數(shù)字,如果前面一個(gè)數(shù)字大于后面的數(shù)字,則這兩個(gè)數(shù)字組成一個(gè)逆序?qū)?。輸入一個(gè)數(shù)組,求出這個(gè)數(shù)組中的逆序?qū)Φ目倲?shù)。 示例 1: 輸入: [7,5,6,4] 輸出: 5 限制 : 0 = 數(shù)組長度 = 50000 ??思路:歸并排序 預(yù)備知識(shí) 「 歸并排序 」是用 分治 思想,分

    2024年02月11日
    瀏覽(25)
  • (動(dòng)態(tài)規(guī)劃) 劍指 Offer 10- I. 斐波那契數(shù)列 ——【Leetcode每日一題】

    (動(dòng)態(tài)規(guī)劃) 劍指 Offer 10- I. 斐波那契數(shù)列 ——【Leetcode每日一題】

    難度:簡單 寫一個(gè)函數(shù),輸入 n ,求斐波那契(Fibonacci)數(shù)列的第 n 項(xiàng)(即 F(N) )。斐波那契數(shù)列的定義如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N 1. 斐波那契數(shù)列由 0 和 1 開始,之后的斐波那契數(shù)就是由之前的兩數(shù)相加而得出。 答案需要取模 1e9+7(1000000007),如計(jì)

    2024年02月12日
    瀏覽(20)
  • (排序) 劍指 Offer 21. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面 ——【Leetcode每日一題】

    (排序) 劍指 Offer 21. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面 ——【Leetcode每日一題】

    難度:簡單 輸入一個(gè)整數(shù)數(shù)組,實(shí)現(xiàn)一個(gè)函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序,使得所有奇數(shù)在數(shù)組的前半部分,所有偶數(shù)在數(shù)組的后半部分。 示例: 輸入:nums = [1,2,3,4] 輸出:[1,3,2,4] 注:[3,1,2,4] 也是正確的答案之一。 提示 : 0 = n u m s . l e n g t h = 50000 0 = nums.length = 50000 0 =

    2024年02月12日
    瀏覽(22)
  • Leetcode-每日一題【劍指 Offer 32 - I. 從上到下打印二叉樹】

    Leetcode-每日一題【劍指 Offer 32 - I. 從上到下打印二叉樹】

    從上到下打印出二叉樹的每個(gè)節(jié)點(diǎn),同一層的節(jié)點(diǎn)按照從左到右的順序打印。 例如: 給定二叉樹:? [3,9,20,null,null,15,7] , ??? 3 ?? / ? 9? 20 ??? /? ?? 15?? 7 返回: [3,9,20,15,7] 提示: 節(jié)點(diǎn)總數(shù) = 1000 1.題目要求我們從上到下打印出二叉樹的每個(gè)節(jié)點(diǎn),同一層的節(jié)點(diǎn)按照從左

    2024年02月12日
    瀏覽(22)
  • (樹) 劍指 Offer 32 - I. 從上到下打印二叉樹 ——【Leetcode每日一題】

    (樹) 劍指 Offer 32 - I. 從上到下打印二叉樹 ——【Leetcode每日一題】

    難度:中等 從上到下打印出二叉樹的每個(gè)節(jié)點(diǎn),同一層的節(jié)點(diǎn)按照從左到右的順序打印。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 返回: 提示 : 節(jié)點(diǎn)總數(shù) = 100 ??思路:BFS 使用 優(yōu)先隊(duì)列 進(jìn)行 層序遍歷 即可! ??代碼:(C++、Java) C++ Java ?? 運(yùn)行結(jié)果: ?? 復(fù)雜度分析: 時(shí)間

    2024年02月14日
    瀏覽(23)
  • 劍指 Offer 59 - I. 滑動(dòng)窗口的最大值 / LeetCode 239. 滑動(dòng)窗口最大值(優(yōu)先隊(duì)列 / 單調(diào)隊(duì)列)

    鏈接:劍指 Offer 59 - I. 滑動(dòng)窗口的最大值;LeetCode 239. 滑動(dòng)窗口最大值 難度:困難 下一篇:劍指 Offer 59 - II. 隊(duì)列的最大值(單調(diào)隊(duì)列) 給你一個(gè)整數(shù)數(shù)組 nums,有一個(gè)大小為 k 的滑動(dòng)窗口從數(shù)組的最左側(cè)移動(dòng)到數(shù)組的最右側(cè)。你只可以看到在滑動(dòng)窗口內(nèi)的 k 個(gè)數(shù)字?;瑒?dòng)窗

    2024年02月15日
    瀏覽(21)
  • 每天一道leetcode:1192. 查找集群內(nèi)的關(guān)鍵連接(圖論&困難&tarjan算法)

    每天一道leetcode:1192. 查找集群內(nèi)的關(guān)鍵連接(圖論&困難&tarjan算法)

    力扣數(shù)據(jù)中心有 n 臺(tái)服務(wù)器,分別按從 0 到 n-1 的方式進(jìn)行了編號(hào)。它們之間以 服務(wù)器到服務(wù)器 的形式相互連接組成了一個(gè)內(nèi)部集群,連接是無向的。用 connections 表示集群網(wǎng)絡(luò), connections[i] = [a, b] 表示服務(wù)器 a 和 b 之間形成連接。任何服務(wù)器都可以直接或者間接地通過網(wǎng)絡(luò)

    2024年02月12日
    瀏覽(17)
  • 劍指offer -- 二維數(shù)組中的查找

    劍指offer -- 二維數(shù)組中的查找

    二維數(shù)組中的查找_??皖}霸_牛客網(wǎng) (nowcoder.com) 暴力查找法: 是一種簡單直接的解決方法,可以用于在二維數(shù)組中查找目標(biāo)值。該方法的思路是遍歷數(shù)組的每個(gè)元素,逐個(gè)與目標(biāo)值進(jìn)行比較。 具體步驟如下: 從數(shù)組的第一行第一列開始,逐行逐列地遍歷數(shù)組的每個(gè)元素。 對

    2024年02月06日
    瀏覽(64)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包