leetcode-Candy(2014.2.25)

class Solution {
public:
    int candy(vector<int> &ratings) {
        if(ratings.size()==0) return 0;
        if(ratings.size()==1) return 1;
        vector<int> candy(ratings.size());
        int m=0;
        for(int i=0;i<ratings.size();i++){
            candy[i]=1;
        }
        for(int i=1;i<ratings.size();i++){
            if(ratings[i]>ratings[i-1]) candy[i]=candy[i-1]+1;
        }
        for(int i=ratings.size()-2;i>=0;i--){
            if(ratings[i+1]<ratings[i] && candy[i+1]>=candy[i]) candy[i]=candy[i+1]+1;//判定條件需要注意
        }
        for(int i=0;i<ratings.size();i++){
            m+=candy[i];
        }
        return m;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章