最近做題發現無重疊區間出現的比較多,在此做個記錄,但願你,思維活躍,邏輯縝密,多的不扯,堅持刷題^_^。
給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。
分析題意,說的是無重疊區間,那就是利用區間數字的大小做判斷唄,所以對整體陣列排序不會對整體結果造成影響。但是對做題人來說那就簡單多了,有時候,看似沒有規律的事情,分析到它的本質,就有可能發現題中的規律,千萬不要去被題目帶偏,用程式去模擬很亂的思緒,這樣只會越寫越亂,更不要期待能做出正確的結果。
廢話不說了,看**吧,注釋挺清楚。
bool judge(vectora, vectorb)
class solution
}return len-count;
}};
2、用最少數量的箭引爆氣球
相似的題目,話不多少。
bool judge(vectora, vectorb)
class solution
}return count;
}};
小明最近在做病毒自動檢測,他發現,在某些library 的**段的二進位制表示中,如果包含子串並且恰好有k個1,就有可能有潛在的病毒。library的二進位制表示可能很大,並且子串可能很多,人工分析不可能,於是他想寫個程式來先算算到底有多少個子串滿足條件。如果子串內容相同,但是開始或者結束位置不一樣,則被認為是不同的子串。
注:子串一定是連續的。例如"010"有6個子串,分別是 "0, "1", "0", "01", "10", "010"
#include #include #include #include using namespace std;
int numsubstring(int k, string & str)
} if (count < k)
return 0;
for (int i = 0; i < size; ++i)
index++;
} //尋求左邊沿固定情況下符合情況的所有值
while (index> num;
string str;
cin >> str;
cout << numsubstring(num, str);
system("pause");
return 0;
}
無重疊區間
給定一些區間,找到需要移除的最小區間數,以使其餘的區間不重疊。樣例1 輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 1,3 被移除後,剩下的區間將不再重疊。樣例2 輸入 1,2 1,2 1,2 輸出 2 解釋 需要將兩個 1,2 移除使得剩下的區間不重合。樣例3 輸入 1,2 2,3 輸出 ...
無重疊區間
問題描述 給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。注意 可以認為區間的終點總是大於它的起點。區間 1,2 和 2,3 的邊界相互 接觸 但沒有相互重疊。示例 1 輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 移除 1,3 後,剩下的區間沒有重疊。示例 2 輸入 1...
435 無重疊區間
題目描述 給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。注意 可以認為區間的終點總是大於它的起點。區間 1,2 和 2,3 的邊界相互 接觸 但沒有相互重疊。示例 1 輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 移除 1,3 後,剩下的區間沒有重疊。示例 2 輸入 1...