貪心演算法 最小的單位閉區間集 收藏

2021-05-05 00:33:06 字數 442 閱讀 9680

問題描述:

請描述乙個有效的演算法,使之對給定的實軸上的點集,能確定包含所有給定點的最小的單位閉區間集合。

分析:1)  從點集中取最小的點;

2)  取以該點為左起點的單位閉區間,然後從點集中去掉包含在該單位閉區間的所有點;

3)  重複1)-2),直到所有的點處理完畢;那麼2)得到的單位閉區間集合a即為所求;

證明:i) 從2)中看到,點集中的任意點必定包含在a的某一單位閉區間中,即2)得到的單位閉區間集合a是的問題的乙個解;

ii) 假設b是一最優解, 那麼b中必定有乙個單位閉區間包含點集的最小點;

由於 「包含該最小點的單位閉區間能包含的點集中的點」 總是 「以該點為左起點的單位閉區間能包含的點集中的點」 的子集;

所以 用以最小點為左起點的單位閉區間 代替b中包含該最小點的單位閉區間, 得到的新的解不會比b更差,即a也是最優解;

貪心演算法 最小的單位閉區間集

問題描述 請描述乙個有效的演算法,使之對給定的實軸上的點集,能確定包含所有給定點的最小的單位閉區間集合。分析 1 從點集中取最小的點 2 取以該點為左起點的單位閉區間,然後從點集中去掉包含在該單位閉區間的所有點 3 重複1 2 直到所有的點處理完畢 那麼2 得到的單位閉區間集合a即為所求 證明 i ...

重疊區間問題之逆思維的貪心演算法

給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。注意 可以認為區間的終點總是大於它的起點。區間 1,2 和 2,3 的邊界相互 接觸 但沒有相互重疊。本題主要有兩個難點 如何找到貪心策略 如何斷定兩區間重疊 貪心策略 問題轉化 移除哪個區間,轉化為選擇哪些區間 貪心選擇 根據每個...

貪心演算法 最小生成樹的c 實現

總結 示例 pandas 是基於numpy 的一種工具,該工具是為了解決資料分析任務而建立的。如下 示例 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns impo...