मान लीजिए कि हमारे पास [0, 1, ..., N - 1] का कुछ क्रमचय A है, जहां N, A की लंबाई है। अब (वैश्विक) व्युत्क्रमों की संख्या i
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- maxVal:=-1, n:=A का आकार
- मैं के लिए 0 से n - 3 की सीमा में
- maxVal :=अधिकतम A[i] और maxVal
- यदि maxVal> A[i + 2], तो झूठी वापसी करें
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool isIdealPermutation(vector<int>& A) {
int maxVal = -1;
int n = A.size();
for(int i = 0; i < n - 2; i++){
maxVal = max(A[i], maxVal);
if(maxVal > A[i + 2])
return false;
}
return true;
}
};
main(){
vector<int> v = {1,0,2};
Solution ob;
cout << (ob.isIdealPermutation(v));
} इनपुट
[1,0,2]
आउटपुट
1