C++ 程式碼以檢查全部燈泡是否可以被開啟
假設我們有一個數字 m 和一個包含 n 個子列表的巢狀列表 A。考慮有 m 個燈泡,最初它們全部關閉。有 n 個按鈕,每個按鈕都連線到一些燈泡。所以 A[i] 是一組燈泡,可以透過按下第 i 個開關開啟。我們必須檢查我們是否可以點亮所有燈泡。
所以,如果輸入像 A = [[1, 4], [1, 3, 1], [2]];m = 4,則輸出將為 True,因為透過按下所有開關,我們可以點亮全部四個燈泡。
步驟
為了解決這個問題,我們將遵循這些步驟 −
Define one set s for initialize i := 0, when i < size of A, update (increase i by 1), do: for initialize j := 0, when j < size of A[i], update (increase j by 1), do: insert A[i, j] into s if size of s is same as m, then: return true Otherwise return false
示例
讓我們看看以下實現以獲得更好的理解 −
#include <bits/stdc++.h>
using namespace std;
bool solve(vector<vector<int>> A, int m){
set<int> s;
for (int i = 0; i < A.size(); i++){
for (int j = 0; j < A[i].size(); j++){
s.insert(A[i][j]);
}
}
if (s.size() == m)
return true;
else
return false;
}
int main(){
vector<vector<int>> A = { { 1, 4 }, { 1, 3, 1 }, { 2 } };
int m = 4;
cout <<solve(A, m) << endl;
}輸入
{ { 1, 4 }, { 1, 3, 1 }, { 2 } }, 4輸出
1
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP