作者:哗锅_348 | 来源:互联网 | 2023-10-10 19:56
class Solution {
public:int candy(vector<int>& a) {int n&#61;a.size(),sum&#61;0;if(n<&#61;1) return n;sum&#61;1;for(int i&#61;0,pre&#61;1;i<n-1;){if(a[i&#43;1]>a[i]){int cnt&#61;1;while(i<n-1&&a[i&#43;1]>a[i]) &#43;&#43;cnt,sum&#43;&#61;cnt,&#43;&#43;i;pre&#61;cnt;continue;}if(a[i&#43;1]<a[i]){int di&#61;i,cnt&#61;1;while(i<n-1&&a[i&#43;1]<a[i]) --cnt,sum&#43;&#61;cnt,&#43;&#43;i;if(cnt<&#61;0){sum&#43;&#61;(i-di)*(1-cnt);if(pre<1&#43;1-cnt) sum&#43;&#61;1&#43;1-cnt-pre;}continue;}if(a[i&#43;1]&#61;&#61;a[i]){while(i<n-1&&a[i&#43;1]&#61;&#61;a[i]) sum&#43;&#61;1,&#43;&#43;i;pre&#61;1;continue;}}return sum;}
};
class Solution {
public:int candy(vector<int>& a) {int n&#61;a.size(),sum&#61;0;if(n<&#61;1) return n;sum&#61;1;cout<<"第0个小朋友有1个糖果"<<endl;for(int i&#61;0,pre&#61;1;i<n-1;){if(a[i&#43;1]>a[i]){cout<<i<<" --> "<<i&#43;1<<"开始上坡了"<<endl;int cnt&#61;1;while(i<n-1&&a[i&#43;1]>a[i]){&#43;&#43;cnt,sum&#43;&#61;cnt;cout<<"第"<<i&#43;1<<"个小朋友有"<<cnt<<"个糖果"<<endl;&#43;&#43;i;}pre&#61;cnt;continue;}if(a[i&#43;1]<a[i]){cout<<i<<" --> "<<i&#43;1<<"开始下坡了"<<endl;int di&#61;i,cnt&#61;1;while(i<n-1&&a[i&#43;1]<a[i]){--cnt,sum&#43;&#61;cnt;cout<<"第"<<i&#43;1<<"个小朋友有"<<cnt<<"个糖果"<<endl;&#43;&#43;i;}if(cnt<&#61;0){sum&#43;&#61;(i-di)*(1-cnt);cout<<"第["<<di&#43;1<<","<<i<<"]个小朋友每个人需要增加"<<1-cnt<<"个糖果"<<endl;if(pre<1&#43;1-cnt) {sum&#43;&#61;1&#43;1-cnt-pre;cout<<"第"<<di<<"个小朋友需要增加"<<1&#43;1-cnt-pre<<"个糖果"<<endl;}}continue;}if(a[i&#43;1]&#61;&#61;a[i]){cout<<i<<" --> "<<i&#43;1<<"开始等坡了"<<endl;while(i<n-1&&a[i&#43;1]&#61;&#61;a[i]){sum&#43;&#61;1;cout<<"第"<<i&#43;1<<"个小朋友有"<<1<<"个糖果"<<endl;&#43;&#43;i;}pre&#61;1;continue;}}return sum;}
};