阿里的测试题,只能用java写,恩,我就只通过了20%,后来网上找了答案,才知道忘记考虑=条件。
#include <iostream>
#include<vector>
using namespace std;
int candyCount(vector<int>&rating)
{
int res=0;
int n=rating.size();
vector<int>candy(n,1);
//从左往右遍历
for(int i=0;i<n-1;i++)
{
if(rating[i+1]>rating[i])
candy[i+1]=candy[i]+1;
}
//从右往左遍历
for(int i=n-1;i>0;i--)
{
if(rating[i-1]>rating[i]&&candy[i-1]<=candy[i])
candy[i-1]=candy[i]+1;
}
for(auto a:candy)
res+=a;
return res;
}
int main()
{
vector<int>rating{1,3,2,1,4,5,2};
cout<<candyCount(rating)<<endl;
cout << "Hello world!" << endl;
system("pause");
return 0;
}