貪心算法(13)(java)合并區間

題目:

以數組?intervals?表示若干個區間的集合,其中單個區間為?intervals[i] = [starti, endi]?。請你合并所有重疊的區間,并返回?一個不重疊的區間數組,該數組需恰好覆蓋輸入中的所有區間?。

示例 1:

輸入:intervals = [[1,3],[2,6],[8,10],[15,18]]
輸出:[[1,6],[8,10],[15,18]]
解釋:區間 [1,3] 和 [2,6] 重疊, 將它們合并為 [1,6].

解法:

1.排序:左端點或右端點排序;

2.根據排序后的結果,總結規律,進而得出解決這個問題的策略;

3.貪心策略:求并集

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;public class Solution {public int[][]merge(int[][]intervals){//按左端點排序Arrays.sort(intervals, Comparator.comparingInt(v -> v[0]));//合并區間,求并集int left=intervals[0][0],right=intervals[0][1];List<int[]>ret=new ArrayList<>();for(int i=1;i<intervals.length;i++){int a=intervals[i][0],b=intervals[i][1];if(a<=right)//有重疊部分{right=Math.max(right,b);}else//不能合并{ret.add(new int[]{left,right});left=a;right=b;}}ret.add(new int[]{left,right});return ret.toArray(new int[0][]);}public static void main(String[] args) {Solution solution=new Solution();int [][]intervals=new int[][]{new int[]{1,3},new int[]{2,6},new int[]{8,10},new int[]{15,18},};int [][] merged=solution.merge(intervals);for(int[] interval:merged){System.out.println(Arrays.toString(interval));}}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/74090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/74090.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/74090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

A股復權計算_權息數據整理

目錄 前置&#xff1a; 步驟&#xff1a; 1 以通達信為參照 2 從優礦獲取所需數據 2.1 股票配股信息 2.2 股票分紅信息 2.3 股票拆股信息 3 合并數據&#xff0c;制成權息數據表 權息數據截止20250329.7z 視頻 前置&#xff1a; 1 本系列將以 “A股復權計算_” 開頭…

學習筆記—數據結構—二叉樹(鏈式)

目錄 二叉樹&#xff08;鏈式&#xff09; 概念 結構 初始化 遍歷 前序遍歷 中序遍歷 后序遍歷 層序遍歷 結點個數 葉子結點個數 第k層結點個數 深度/高度 查找值為x的結點 銷毀 判斷是否為完整二叉樹 總結 頭文件Tree.h Tree.c 測試文件test.c 補充文件Qu…

Open GL ES ->GLSurfaceView在正交投影下的圖片旋轉、縮放、位移

XML文件 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:o…

Day78 | 靈神 | 反轉鏈表 兩兩交換鏈表中的節點

Day78 | 靈神 | 反轉鏈表 兩兩交換鏈表中的節點 24.兩兩交換鏈表中的節點 24. 兩兩交換鏈表中的節點 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 這道題就是下面這道題的k2的情況 25. K 個一組翻轉鏈表 - 力扣&#xff08;LeetCode&#xff09; 基本思路和…

濾波---卡爾曼濾波

卡爾曼濾波概覽 一、定義 卡爾曼濾波是一種基于線性系統和高斯噪聲假設的遞歸最優狀態估計算法。其核心目標是通過融合系統模型預測值與傳感器測量值&#xff0c;在噪聲環境中實時估計系統的動態狀態&#xff08;如位置、速度、加速度等&#xff09;。 數學基礎&#xff1a; …

23種設計模式-結構型模式-橋接器

文章目錄 簡介問題解決方案示例總結 簡介 橋接器是一種結構型設計模式&#xff0c;可將一個大類或一系列緊密相關的類拆分為抽象和實現兩個獨立的層次結構&#xff0c;從而能在開發時分別使用。 問題 假如你有一個幾何形狀Shape類&#xff0c;它有兩個子類&#xff1a;圓形C…

手工排查后門木馬的常用姿勢

聲明&#xff01;本文章所有的工具分享僅僅只是供大家學習交流為主&#xff0c;切勿用于非法用途&#xff0c;如有任何觸犯法律的行為&#xff0c;均與本人及團隊無關&#xff01;&#xff01;&#xff01; 1. 檢查異常文件 &#xff08;1&#xff09;查找最近修改的文件 # 查…

工業機器人核心算法體系解析:從感知到決策的技術演進

工業機器人作為智能制造的核心裝備,其技術競爭力的本質是算法體系的優化與創新。從靜態軌跡執行到動態環境適應,從單一任務控制到復雜場景決策,工業機器人的算法體系涵蓋環境感知、運動控制、路徑規劃、行為決策四大核心模塊。本文將深入解析各模塊的關鍵算法及其技術演進,…

當 EcuBus-Pro + UTA0401 遇上 NSUC1500

文章目錄 1.前言2.EcuBus-Pro簡介2.1 官方地址2.2 概覽 3.納芯微NSUC1500簡介3.1 NSUC1500概述3.2 產品特性 4.測試環境5.基礎功能5.1 數據發送5.2 數據監控 6.自動化功能6.1 腳本創建6.2 腳本編輯6.3 腳本編輯與測試 7.音樂律動7.1 導入例程7.2 效果展示 ECB工程 1.前言 最近…

說說Redis的內存淘汰策略?

大家好&#xff0c;我是鋒哥。今天分享關于【說說Redis的內存淘汰策略?】面試題。希望對大家有幫助&#xff1b; 說說Redis的內存淘汰策略? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 Redis的內存淘汰策略用于管理當內存達到最大限制時&#xff0c;如何處理過…

Python實現音頻數字水印方法

數字水印技術可以將隱藏信息嵌入到音頻文件中而不明顯影響音頻質量。下面我將介紹幾種在Python中實現音頻數字水印的方法。 方法一&#xff1a;LSB (最低有效位) 水印 import numpy as np from scipy.io import wavfile def embed_watermark_lsb(audio_path, watermark, ou…

Altium Designer 24 PCB 走線倒圓弧方法

Altium Designer 24 PCB 走線倒圓弧方法 問題描述解決方法設置倒圓弧參數選擇需要優化的走線進行走線優化 優化效果展示 在 PCB 設計中&#xff0c;走線轉角過于尖銳不僅影響美觀&#xff0c;還可能引起信號完整性問題。本文介紹如何在 Altium Designer 24 中通過倒圓弧優化走線…

Cookie與Token詳解及測試需重點關注點

在現代Web應用中&#xff0c;Cookie 和 Token 是兩種常見的身份驗證與會話管理機制。它們分別在不同的場景下扮演著重要的角色&#xff0c;在性能、靈活性和安全性方面具有各自的特點。作為測試人員&#xff0c;理解它們的工作原理以及如何對其進行有效的測試&#xff0c;是保證…

Unity 2022.3.x部分Android設備播放視頻黑屏問題

Android平臺視頻兼容性問題很多…類似的黑屏問題真的很頭大&#xff0c;總結一些常見問題&#xff1a; 1. 視頻文件不支持壓縮 如果使用AssetBundle加載視頻&#xff0c;這個AssetBundle壓縮格式要選None。有人可能會說最新版Unity已經支持bundle壓縮下播放視頻&#xff0c;穩…

Redis - 概述

目錄 ?編輯 一、什么是redis 二、redis能做什么&#xff08;有什么特點&#xff09;&#xff1f; 三、redis有什么優勢 四、Redis與其他key-value存儲有什么不同 五、Redis命令 六、Redis數據結構 1、基礎數據結構 2、高級數據結構 一、什么是redis 1、redis&#x…

數據庫部署在服務器表不存在解決方案

MySQL 數據庫表不存在錯誤解決方案 MySqlException (0x80004005): Table store.SysLogOperate doesnt exist 服務器用的mysql5.6 用這個表syslogoperate只是全是小寫 看起來你在使用 Pomelo.EntityFrameworkCore.MySql 作為 MySQL 數據庫的提供程序&#xff0c;并且在初始化…

圖靈完備——游戲中進行實踐

圖靈完備 簡述結構一、基本邏輯電路1、低電平2、高電平3、非門4、與門5、三路與門6、或門7、三路或門8、與非門9、或非門10、異或門11、同或門 二、算數運算&&存儲器1、二進制速算2、成對的麻煩 簡述 這周就要學習計算機組成原理了&#xff0c;為了學起來不那么吃力&am…

踏過強化學習的每一步推導

給定 l [ a n , . . . , a 0 ] l[a_n, ..., a_0] l[an?,...,a0?]&#xff0c;現在 for idx in range(len(l)-2, -1, -1):l[idx] l[idx1] * ld注&#xff1a;這里的ld就是 λ \lambda λ&#xff0c;定義 λ 0 1 \lambda^01 λ01 證明變換后&#xff1a; l [ ∑ i 0 n …

AI小白的第七天:必要的數學知識(概率)

概率 Probability 1. 概率的定義 概率是一個介于 0 和 1 之間的數&#xff0c;表示某個事件發生的可能性&#xff1a; 0&#xff1a;事件不可能發生。1&#xff1a;事件必然發生。0 到 1 之間&#xff1a;事件發生的可能性大小。 例如&#xff0c;擲一枚公平的硬幣&#xf…

UE5 + Rider + VsCode 接入騰訊的 Puerts 腳本

學習了一段時間 U&#xff0c;寫點啥就得等編譯&#xff0c;體驗真的是一言難盡。。。。。。 然后就想著給自己找個腳本好了&#xff0c;調研了一下 AngelScript&#xff0c;puerts 的可行性。 AngelScript 看著真的誘人&#xff0c;但是發現連官方提供的都是 UE 的預編譯版本…