题解 | 分糖果问题

分糖果问题

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

class Solution {
public:
    int candy(vector<int>& arr) {
        int n = arr.size();
        vector<int> score (n,0);
        score[0] = 1;
        for(int i =0;i<n-1;i++){
            if(arr[i]<arr[i+1]){
                score[i+1] = score[i]+1;
            }else{
                score[i+1]= 1;
            }
        }
        int result = 0;
        for (int i =0; i<n; i++) {
            result+=score[i];
        }
        return result;
    }
};

这是第一版错误代码,因为每个小孩至少分到一个糖果,所以可以在初始化时将score全部初始化成1,也就不需要else判断了,第二个问题是其只考虑了从左向右单向递增的情况.

一个小孩拿到多少糖果同时和左边得分比其低的人数和右边得分比其低的人数有关

全部评论

相关推荐

10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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