C++で含まれる間隔
したがって、入力が[[2,4]、[5,11]、[5,9]、[10,10]]の場合、[5,11]には[5、 9]。
これを解決するには、次の手順に従います-
-
配列を並べ替えるv
-
1つの2D配列retを定義する
-
間隔ごとにv−
-
retが空の場合、-
-
retの最後に挿入します
-
-
それ以外の場合、retの最後の要素> =it [0]の場合、-
-
trueを返す
-
-
それ以外の場合
-
retの最後に挿入します
-
-
-
falseを返す
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; class Solution { public: bool static cmp(vector<int> &a, vector<int> &b) { return a[1] == b[1] ? a[0] > b[0] : a[1] < b[1]; } bool solve(vector<vector<int>> &v) { sort(v.begin(), v.end(), cmp); vector<vector<int>> ret; for (auto &it : v) { if (ret.empty()) ret.push_back(it); else if (ret.back()[0] >= it[0]) return true; else ret.push_back(it); } return false; } }; main() { Solution ob; vector<vector<int>> v = {{2,4},{5,11},{5,9},{10,10}}; cout << (ob.solve(v)); }
入力
{{2,4},{5,11},{5,9},{10,10}}
出力
1
-
C++でゲームVをジャンプする
arrと呼ばれる整数の配列と整数dがあるとします。 1つのステップで、インデックスiから-にジャンプできます。 i + xここで、i +x
-
C++での区間リストの共通部分
閉じた区間のリストが2つあるとします。ここでは、区間の各リストはペアごとに互いに素であり、ソートされた順序になっています。これら2つの間隔リストの共通部分を見つけました。 閉区間[a、b]はa<=bとして表されることがわかっています。 a <=x<=bの実数xのセット。 2つの閉じた区間の共通部分は、空であるか、閉じた区間として表すことができる実数のセットです。 したがって、入力がA =[[0,2]、[5,10]、[13,23]、[24,25]]およびB =[[1,5]、[8,12]、[ 15,24]、[25,27]]の場合、出力は[[1,2]、[5,5]、[8,10]、[15,23]、[