【ATT】Candy

 

    int candy(vector<int> &ratings) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
        if(ratings.empty())
            return 0;
        int n = ratings.size();
        vector<int> candys(n,1);
        int next_candy = 2;
        for(int i=0;i<n;i++)
        {
            if(i>0&&ratings[i]>ratings[i-1])
                candys[i] = max(candys[i],next_candy++);
            else    
                next_candy = 2;
        }
        
        next_candy = 2;
        for(int i=n-1;i>=0;i--)
        {
            if(i<n-1&&ratings[i]>ratings[i+1])
                candys[i] = max(candys[i],next_candy++);
            else
                next_candy = 2;
        }
        
        int sum = 0;
        for(int i=0;i<n;i++)
            sum+=candys[i];
        
        return sum;
    }

  

posted @ 2013-10-25 22:25  summer_zhou  阅读(130)  评论(0编辑  收藏  举报