困
cpp
class Solution {
public:
int countPermutations(vector<int>& complexity) {
const int MOD = 1000000007;
long long ans = 1;// 阶乘初始值为1(0! = 1)
//第一步:检查核心约束------所有i>0的计算机必须能被0号解锁
for (int i = 1; i < complexity.size(); i++) {
// 若i号复杂度 ≤ 0号 → 0号无法解锁i,无有效排列,返回0
if (complexity[i] <= complexity[0]) {
return 0;
}
// 第二步:计算有效排列数------(n-1)!(阶乘)
ans = ans * i % MOD;// 计算1×2×...×(n-1) = (n-1)!
// 每一步取模,避免溢出
}
return ans;
}
};