题解 | #分糖果问题#官方代码简单明了解释

分糖果问题

https://www.nowcoder.com/practice/76039109dd0b47e994c08d8319faa352

相邻的个数有递增有递减,就好像一个折线图,我们其实可以看出折线图的最低点时一定的,一定时1,如果最低点练习几个相同那么就都是1,这是我们确定的,1.我们看递增的话可以从左往右,左边开始时第一个最低点,这个是确定的,就可以推导出递增的序列了。2,那么递减呢,递减的话下一个可不一定只比当前值少一个,少几个也是有可能的,没有办法推导,但是我们发现从从左往右是递减的,但是从右往左就是递增了,并且最右边最小值1开始推导,最后还要有一个矫正,完美了,这个递增的推导式完全正确且唯一的,我们就是利用了这一点。递增从1开始推导,确定且唯一,明白着一点那么答案就已经出来了。

class Solution {
  public:
    int candy(vector<int>& arr) {
        int n = arr.size();
        vector<int> dp(n, 1);
        for(int i=1;i<n;i++)
        {
            if(arr[i]>arr[i-1])
            dp[i]=dp[i-1]+1;
        }
        for(int i=n-2;i>=0;i--)
        {                         //第二个条件和重要的。
            if(arr[i]>arr[i+1] && dp[i]<=dp[i+1])
            {
                dp[i]=dp[i+1]+1;
            }
        }
        int sum=0;
        for(auto& e:dp)
        sum+=e;
        return sum;
    }
};

全部评论

相关推荐

小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务