-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathLeetcode_candy.cc
44 lines (42 loc) · 1.15 KB
/
Leetcode_candy.cc
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
32
33
34
35
36
37
38
39
40
41
42
43
44
class Solution {
public:
int candy(vector<int> &ratings) {
if(ratings.empty())
return 0;
vector<int>vec(ratings.size(), 1);
for(int i = 0; i<ratings.size()-1; ++i)
{
if(ratings[i]<ratings[i+1])
{
vec[i+1] = vec[i]+1;
}
}
for(int i = ratings.size()-2; i>=0; --i)
{
if(ratings[i]>ratings[i+1])
{
vec[i] = max(vec[i], vec[i+1]+1);
}
}
return accumulate(vec.begin(), vec.end(), 0);
}
};
//SECOND TRIAL, almost the same
class Solution {
public:
int candy(vector<int> &ratings) {
if(ratings.empty())
return 0;
vector<int>vec(ratings.size(), 0);
vec[0] = vec[vec.size()-1] = 1;
for(int i=0; i<ratings.size()-1; ++i)
if(ratings[i]<ratings[i+1])
vec[i+1] = vec[i]+1;
else
vec[i+1] = 1;
for(int i=ratings.size()-2; i>=0; --i)
if(ratings[i]>ratings[i+1])
vec[i] = max(vec[i], 1+vec[i+1]);
return accumulate(vec.begin(), vec.end(), 0);
}
};