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

【力扣每日一題】2023.8.28 插入?yún)^(qū)間

這篇具有很好參考價值的文章主要介紹了【力扣每日一題】2023.8.28 插入?yún)^(qū)間。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

題目:

示例:

分析:

代碼:


題目:

【力扣每日一題】2023.8.28 插入?yún)^(qū)間,力扣每日一題,leetcode,算法,數(shù)據(jù)結(jié)構(gòu),c++

示例:

【力扣每日一題】2023.8.28 插入?yún)^(qū)間,力扣每日一題,leetcode,算法,數(shù)據(jù)結(jié)構(gòu),c++

分析:

和昨天的題大差不差,我們?nèi)匀皇怯幸欢褏^(qū)間,題目給我們一個新的區(qū)間,要我們把新區(qū)間插入到原本的區(qū)間數(shù)組里,并且能合并的要合并。

我們可以直接把新區(qū)間放入數(shù)組里,接著執(zhí)行昨天的代碼即可,一行都不用改,甚至形參名字都是一樣的。

由于本題中原始數(shù)組就是按照左區(qū)間升序排序,因此我們可以做一個小優(yōu)化,我們按照左區(qū)間升序的這樣一個規(guī)則插入新區(qū)間,這樣就不必再對數(shù)組進行排序從而減少運行時間了。我們只需要找到原始區(qū)間中第一個左區(qū)間大于新區(qū)間的左區(qū)間的區(qū)間即可,然后將新區(qū)間插入到這個區(qū)間的前面,接著再按照昨天的代碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-684635.html

代碼:

class Solution {
public:
    vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
        //昨天的代碼照搬
        intervals.push_back(newInterval);
        sort(intervals.begin(),intervals.end(),[](vector<int>a,vector<int>b){return a[0]<b[0];});
        vector<vector<int>>res;
        int begin=intervals[0][0],end=intervals[0][1];  //臨時變量記錄左右區(qū)間,初始化為數(shù)組第一個元素
        for(int i=1;i<intervals.size();i++){
            if(intervals[i][0]>end){    //如果新區(qū)間的左區(qū)間大于臨時的右區(qū)間,則發(fā)生區(qū)間不重合
                res.push_back({begin,end}); //添加臨時變量的區(qū)間
                begin=intervals[i][0],end=intervals[i][1];  //更新兩個臨時變量
            }else{
                end=max(end,intervals[i][1]);   //如果區(qū)間重合,那么更新臨時變量的右區(qū)間為較大值
            }
        }
        res.push_back({begin,end});
        return res;

        //小小優(yōu)化一下
        int index=0;
        for(;index<intervals.size();index++){
            if(newInterval[0]<=intervals[index][0]) break;
        }
        intervals.insert(intervals.begin()+index,newInterval);
        vector<vector<int>>res;
        int begin=intervals[0][0],end=intervals[0][1];  //臨時變量記錄左右區(qū)間,初始化為數(shù)組第一個元素
        for(int i=1;i<intervals.size();i++){
            if(intervals[i][0]>end){    //如果新區(qū)間的左區(qū)間大于臨時的右區(qū)間,則發(fā)生區(qū)間不重合
                res.push_back({begin,end}); //添加臨時變量的區(qū)間
                begin=intervals[i][0],end=intervals[i][1];  //更新兩個臨時變量
            }else{
                end=max(end,intervals[i][1]);   //如果區(qū)間重合,那么更新臨時變量的右區(qū)間為較大值
            }
        }
        res.push_back({begin,end});
        return res;
    }
};

到了這里,關(guān)于【力扣每日一題】2023.8.28 插入?yún)^(qū)間的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 2023-08-27 LeetCode每日一題(合并區(qū)間)

    2023-08-27 LeetCode每日一題(合并區(qū)間)

    點擊跳轉(zhuǎn)到題目位置 以數(shù)組 intervals 表示若干個區(qū)間的集合,其中單個區(qū)間為 intervals[i] = [starti, endi] 。請你合并所有重疊的區(qū)間,并返回 一個不重疊的區(qū)間數(shù)組,該數(shù)組需恰好覆蓋輸入中的所有區(qū)間 。 示例 1: 示例 2: 提示: 1 = intervals.length = 10 4 intervals[i].length == 2 0 = s

    2024年02月10日
    瀏覽(28)
  • LeetCode每日一題:56. 合并區(qū)間(2023.8.27 C++)

    目錄 56. 合并區(qū)間 題目描述: 實現(xiàn)代碼與解析: 排序 + 貪心 原理思路: ????????以數(shù)組? intervals ?表示若干個區(qū)間的集合,其中單個區(qū)間為? intervals[i] = [starti, endi] ?。請你合并所有重疊的區(qū)間,并返回? 一個不重疊的區(qū)間數(shù)組,該數(shù)組需恰好覆蓋輸入中的所有區(qū)間 ?。

    2024年02月11日
    瀏覽(16)
  • 2023-07-28 LeetCode每日一題(并行課程 III)

    2023-07-28 LeetCode每日一題(并行課程 III)

    點擊跳轉(zhuǎn)到題目位置 給你一個整數(shù) n ,表示有 n 節(jié)課,課程編號從 1 到 n 。同時給你一個二維整數(shù)數(shù)組 relations ,其中 relations[j] = [prevCourse j , nextCourse j ] ,表示課程 prevCoursej 必須在課程 nextCourse j 之前 完成(先修課的關(guān)系)。同時給你一個下標從 0 開始的整數(shù)數(shù)組 time ,其

    2024年02月15日
    瀏覽(22)
  • 【LeetCode每日一題合集】2023.8.28-2023.9.3(到家的最少跳躍次數(shù))

    【LeetCode每日一題合集】2023.8.28-2023.9.3(到家的最少跳躍次數(shù))

    https://leetcode.cn/problems/insert-interval/ 提示: 0 = intervals.length = 10^4 intervals[i].length == 2 0 = intervals[i][0] = intervals[i][1] = 10^5 intervals 根據(jù) intervals[i][0] 按 升序 排列 newInterval.length == 2 0 = newInterval[0] = newInterval[1] = 10^5 當前區(qū)間與要加入的新區(qū)間之間的關(guān)系只有兩種可能:相交或者不相

    2024年02月09日
    瀏覽(27)
  • C++---區(qū)間DP---加分二叉樹(每日一道算法2023.4.28)

    題目: 設(shè)一個 n 個節(jié)點的二叉樹 tree 的中序遍歷為(1,2,3,…,n),其中數(shù)字 1,2,3,…,n 為節(jié)點編號。 每個節(jié)點都有一個分數(shù)(均為正整數(shù)),記第 i 個節(jié)點的分數(shù)為 di,tree 及它的每個子樹都有一個加分,任一棵子樹 subtree(也包含 tree 本身)的加分計算方法如下: subtree的左

    2024年02月06日
    瀏覽(23)
  • 【每日一題】57. 插入?yún)^(qū)間

    給你一個 無重疊的 ,按照區(qū)間起始端點排序的區(qū)間列表。 在列表中插入一個新的區(qū)間,你需要確保列表中的區(qū)間仍然有序且不重疊(如果有必要的話,可以合并區(qū)間)。 示例 1: 示例 2: 示例 3: 示例 4: 示例 5: 提示: 0 = intervals.length = 104 intervals[i].length == 2 0 = interval

    2024年02月10日
    瀏覽(20)
  • 【leetcode 力扣刷題】匯總區(qū)間//合并區(qū)間//插入?yún)^(qū)間

    【leetcode 力扣刷題】匯總區(qū)間//合并區(qū)間//插入?yún)^(qū)間

    題目鏈接:228.匯總區(qū)間 題目內(nèi)容: 看題目真是沒懂這個題到底是要干啥……實際上題目要求的 恰好覆蓋數(shù)組中所有數(shù)字 的 最小有序 區(qū)間范圍列表,這個最小是指一個區(qū)間范圍小。比如能夠覆蓋{2,3,4,6}的區(qū)間可以是[2,6],但是5在區(qū)間內(nèi),卻不在數(shù)組內(nèi),因此這個區(qū)間不是最

    2024年02月10日
    瀏覽(33)
  • 【力扣每日一題04】數(shù)組篇--搜索插入位置

    今天的題目,利用的是二分查找原理。很不幸我又沒做出來,但是也很高興發(fā)現(xiàn)自己的不足~ 給定一個排序數(shù)組和一個目標值,在數(shù)組中找到目標值,并返回其索引。如果目標值不存在于數(shù)組中,返回它將會被按順序插入的位置。 示例 1: 示例?2: 示例 3: 由于官方答案我看不明

    2024年02月09日
    瀏覽(18)
  • LeetCode·每日一題·1851. 包含每個查詢的最小區(qū)間·優(yōu)先隊列(小頂堆)

    LeetCode·每日一題·1851. 包含每個查詢的最小區(qū)間·優(yōu)先隊列(小頂堆)

    ? ? 離線查詢: ?輸入的結(jié)果數(shù)組queries[]是無序的。如果我們按照輸入的queries[]本身的順序逐個查看,時間復(fù)雜度會比較高。 于是,我們將queries[]數(shù)組按照數(shù)值大小,由小到大逐個查詢,這種方法稱之為離線查詢。 位運算: ?離線查詢的時候,queries[]可以按照數(shù)值大小逐個

    2024年02月16日
    瀏覽(24)
  • 2023-09-07力扣每日一題

    鏈接: [2594. 修車的最少時間](https://leetcode.cn/problems/form-smallest-number-from-two-digit-arrays/) 題意: 一個能力R的人R*N*N分鐘修N輛車,求最快多久修完(多人多車) 解: 二分很好想,主要是怎么檢查(數(shù)學(xué)廢物潤去看題解了) 實際代碼: 限制: 1 = ranks.length = 105 1 = ranks[i] = 100 1 = ca

    2024年02月09日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包