【ATT】Candy

江枫思渺然 提交于 2020-01-15 06:42:42

 

    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;
    }

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!