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

【每日一題】57. 插入?yún)^(qū)間

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

57. 插入?yún)^(qū)間

題目描述

給你一個 無重疊的 ,按照區(qū)間起始端點排序的區(qū)間列表。

在列表中插入一個新的區(qū)間,你需要確保列表中的區(qū)間仍然有序且不重疊(如果有必要的話,可以合并區(qū)間)。

示例 1:

輸入:intervals = [[1,3],[6,9]], newInterval = [2,5]
輸出:[[1,5],[6,9]]

示例 2:

輸入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
輸出:[[1,2],[3,10],[12,16]]
解釋:這是因為新的區(qū)間 [4,8] 與 [3,5],[6,7],[8,10] 重疊。

示例 3:

輸入:intervals = [], newInterval = [5,7]
輸出:[[5,7]]

示例 4:

輸入:intervals = [[1,5]], newInterval = [2,3]
輸出:[[1,5]]

示例 5:

輸入:intervals = [[1,5]], newInterval = [2,7]
輸出:[[1,7]]

提示:

0 <= intervals.length <= 104
intervals[i].length == 2
0 <= intervals[i][0] <= intervals[i][1] <= 105
intervals 根據(jù) intervals[i][0] 按 升序 排列
newInterval.length == 2
0 <= newInterval[0] <= newInterval[1] <= 105

解題思路

思路:將新區(qū)間插入?yún)^(qū)間列表,再按照56合并區(qū)間方法合并區(qū)間。

class Solution {
public:
    vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
        // 將新區(qū)間加入?yún)^(qū)間列表
        intervals.push_back(newInterval);
        // 區(qū)間按照左端點排序
        sort(intervals.begin(),intervals.end());
        // 合并區(qū)間咯
        int n=intervals.size();
        // 結果區(qū)間
        vector<vector<int>> res;
        res.push_back(intervals[0]);
        for(int i=1;i<n;i++)
        {
            if(intervals[i][0]>res.back()[1])
                res.push_back(intervals[i]);
            else
                res.back()[1]=max(res.back()[1],intervals[i][1]);
        }
        return res;
    }
};

優(yōu)化:原本區(qū)間列表已經(jīng)有序,那么可以利用該信息進行合并。將原有區(qū)間列表分為三部分,第一部分是無重疊部分,第二部分是有重疊部分,第三部分是無重疊部分,可以通過繪制線形圖直觀表示。

class Solution {
public:
    vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
        int n=intervals.size();
        int i=0;
        vector<vector<int>> res;
        // 第一部分無重疊區(qū)間
        while(i<n&&newInterval[0]>intervals[i][1])
        {
            res.push_back(intervals[i]);
            i++;
        }
        // 第二部分重疊區(qū)間 相當于將新區(qū)間與重疊區(qū)間不斷合并然后更新合并區(qū)間
        // [[1,2],[3,5],[6,7],[8,10],[12,16]]
        while(i<n&&newInterval[1]>=intervals[i][0])
        {
            newInterval[0]=min(newInterval[0],intervals[i][0]);
            newInterval[1]=max(newInterval[1],intervals[i][1]);
            i++;
        }
        // [[1,5]] [6,8] 即直接合并該newInterval
        res.push_back(newInterval);
        // 第三部分無重疊區(qū)間
        while(i<n)
        {
            res.push_back(intervals[i]);
            i++;
        }
        return res;
    }
};

總結:注意,因為原有區(qū)間列表有序,故當?shù)谝徊糠譄o重疊區(qū)間處理完畢后,后面即為第二部分有重疊區(qū)間,此時滿足newInterval[0]<interval[i][1],那么有重疊區(qū)間的條件即為newInterval[1]>=interval[i][0],此時將新區(qū)間逐個與各個重疊區(qū)間進行合并,同時更新新區(qū)間,這樣才能得到最后合并后的大區(qū)間。注意[[1,5]] [6,8] 即直接合并該newInterval。文章來源地址http://www.zghlxwxcb.cn/news/detail-683740.html

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

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

領支付寶紅包贊助服務器費用

相關文章

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

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

    點擊跳轉到題目位置 以數(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)
  • LeetCode·每日一題·1851. 包含每個查詢的最小區(qū)間·優(yōu)先隊列(小頂堆)

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

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

    2024年02月16日
    瀏覽(24)
  • Leetcode-每日一題【147.對鏈表進行插入排序】

    Leetcode-每日一題【147.對鏈表進行插入排序】

    給定單個鏈表的頭?head?,使用 插入排序 對鏈表進行排序,并返回?排序后鏈表的頭?。 插入排序?算法的步驟: 插入排序是迭代的,每次只移動一個元素,直到所有元素可以形成一個有序的輸出列表。 每次迭代中,插入排序只從輸入數(shù)據(jù)中移除一個待排序的元素,找到它在

    2024年02月16日
    瀏覽(16)
  • 57. 插入?yún)^(qū)間

    題目鏈接:57. 插入?yún)^(qū)間 代碼如下:

    2024年01月20日
    瀏覽(21)
  • 【Leetcode每日一題】35.搜素插入位置|二分查找數(shù)組下標

    【Leetcode每日一題】35.搜素插入位置|二分查找數(shù)組下標

    ??博主簡介:大一計科生,努力學習Java中!熱愛寫博客~預備程序媛 ??所屬專欄:LeetCode每日一題–進擊大廠 ?往期博文回顧: 【JavaSE】保姆級教程|1萬字+10張圖學會類與對象–建議收藏 ????♂?近期目標:成為千粉小博主。 ??“再牛的程序員也是從小白開始,既然開始

    2024年02月21日
    瀏覽(32)
  • 【LeetCode每日一題: 1039. 多邊形三角剖分的最低得分 | 暴力遞歸=>記憶化搜索=>動態(tài)規(guī)劃 | 區(qū)間dp 】

    【LeetCode每日一題: 1039. 多邊形三角剖分的最低得分 | 暴力遞歸=>記憶化搜索=>動態(tài)規(guī)劃 | 區(qū)間dp 】

    ??作者簡介:碩風和煒,CSDN-Java領域新星創(chuàng)作者??,保研|國家獎學金|高中學習JAVA|大學完善JAVA開發(fā)技術棧|面試刷題|面經(jīng)八股文|經(jīng)驗分享|好用的網(wǎng)站工具分享?????? ??座右銘:人生如棋,我愿為卒,行動雖慢,可誰曾見我后退一步??????? 1039. 多邊形三角剖分的最

    2023年04月19日
    瀏覽(23)
  • 【LeetCode每日一題】2645. 構造有效字符串的最少插入數(shù)(計算組數(shù)+動態(tài)規(guī)劃+考慮相鄰字母)

    【LeetCode每日一題】2645. 構造有效字符串的最少插入數(shù)(計算組數(shù)+動態(tài)規(guī)劃+考慮相鄰字母)

    2024-1-11 2645. 構造有效字符串的最少插入數(shù) 方法一:計算組數(shù) 1.用count統(tǒng)計,能構成幾組abc 2.如果當前字符大于之前字符,說明還在組內(nèi),不更新 3.如果當前字符小于等于之前字符,說明不是同一組的abc,組數(shù)更新 4.最終返回值:組數(shù)*3,再減去原本的字符數(shù),就是要插入的次數(shù)

    2024年01月17日
    瀏覽(23)
  • 【每日一題】56. 合并區(qū)間

    以數(shù)組 intervals 表示若干個區(qū)間的集合,其中單個區(qū)間為 intervals[i] = [starti, endi] 。請你合并所有重疊的區(qū)間,并返回 一個不重疊的區(qū)間數(shù)組,該數(shù)組需恰好覆蓋輸入中的所有區(qū)間 。 示例 1: 示例 2: 提示: 1 = intervals.length = 104 intervals[i].length == 2 0 = starti = endi = 104 首先將所

    2024年02月10日
    瀏覽(14)
  • 【力扣每日一題】2023.8.27 合并區(qū)間

    【力扣每日一題】2023.8.27 合并區(qū)間

    目錄 題目: 示例: 分析: 代碼: 那么合并區(qū)間是在什么情況下才能合并呢? 我總結為兩種情況 第一種情況就是這樣,第二個區(qū)間的左區(qū)間大于第一個區(qū)間的左區(qū)間但是小于第一個區(qū)間的右區(qū)間,并且第一個區(qū)間的右區(qū)間小于第二個區(qū)間的右區(qū)間,這種情況下合并的結果就

    2024年02月11日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包