C++ 程式用於檢查三個項是否迴圈像下一個項
假設我們有一個包含 n 個元素的陣列 A。地球上有 n 架飛機,它們從 1 到 n 編號。編號為 i 的飛機喜歡飛機 A[i]。A[i] != i。我們必須檢查是否有三架飛機 p、q 和 r,其中 p 喜歡 q,q 喜歡 r,r 喜歡 p。
因此,如果輸入與 A = [2, 4, 5, 1, 3] 相似,則輸出將為 True,因為三元組為 [2, 4, 1]。
步驟
為了解決這個問題,我們將遵循以下步驟 −
n := size of A for initialize i := 0, when i < n, update (increase i by 1), do: if A[A[A[i + 1]]] is same as i + 1, then: return true return false
示例
讓我們看看下面的實現,以便更好地理解 −
#include <bits/stdc++.h>
using namespace std;
bool solve(vector<int> A) {
int n = A.size();
for (int i = 0; i < n; i++) {
if (A[A[A[i + 1]]] == i + 1) {
return true;
}
}
return false;
}
int main() {
vector<int> A = { 2, 4, 5, 1, 3 };
cout << solve(A) << endl;
}輸入
{ 2, 4, 5, 1, 3 }輸出
1
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP