-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path05_2.cpp
31 lines (30 loc) · 803 Bytes
/
05_2.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 100% correct, 0% performance. O(N * M)
vector<int> solution(string &S, vector<int> &P, vector<int> &Q) {
int N = S.size();
int M = P.size();
vector<int> impact(N, 0);
vector<int> ans(M, 0);
for (int i = 0; i < N; i++) {
if (S[i] == 'A') {
impact[i] = 1;
} else if (S[i] == 'C') {
impact[i] = 2;
} else if (S[i] == 'G') {
impact[i] = 3;
} else if (S[i] == 'T') {
impact[i] = 4;
}
}
for (int k = 0; k < M; k++) {
ans[k] = impact[P[k]];
for (int i = P[k]+1; i <= Q[k]; i++) {
if (ans[k] > impact[i]) {
ans[k] = impact[i];
}
if (ans[k] == 1) {
break;
}
}
}
return ans;
}