---
# System prepended metadata

title: L4-PermCheck
tags: [Codility_lessons]

---

# L4-PermCheck
###### tags: `Codility_lessons`
## Question
https://app.codility.com/programmers/lessons/4-counting_elements/perm_check/
## Key
1. 先將A[]內的元素都先放進set之中，順便檢查A[]內的元素是否有超出A.size()，若有則return 0。
2. 從1到A.size()，一一檢查set中的是否有缺少某一個數值。
## Reference
## Solution
### Sol. with set
```cpp=

```
### Sol. without using set
```cpp=
int solution(vector<int> &A) {

    int N = A.size();
    vector<int> B(N+1, 0);
    
    for(int i=0; i<N; i++)
    {
        if(A[i] <= N)
            B[A[i]] += 1;
    }
    
    for(size_t j=1; j<B.size(); j++) {
        // cout << "B[" << j << "]=" << B[j] << endl;
        if(B[j] != 1)
            return 0;
    }
    return 1;
}
```