leetcode 135 分发糖果

简介: leetcode 135 分发糖果

分发糖果

c939894088944129a74286c0a1865279.png核心思想是两边遍历,正遍历一次和反遍历一次

单项遍历写了一天过33个测试

贪心算法

class Solution {
public:
    int candy(vector<int>& ratings) {
        int sum=0 ;
        vector<int> num(ratings.size(),1);
        for(int i=0 ; i < ratings.size()-1 ;i++ ) //正向,发现分高的孩子多给一个糖
        {
            if(ratings[i+1] > ratings[i]) 
                num[i+1] = num[i]+1;
        }
        for(int i= ratings.size()-1 ; i >=1 ;i-- )//反向,发现分高的孩子多给一个糖
        {
            if(ratings[i] < ratings[i-1]) 
                num[i-1] = max(num[i]+1 , num[i-1]) ;// 找最大的
        }
        for(auto it:num)  sum += it;
        return sum;
    }
};

二刷

class Solution {
public:
    int candy(vector<int>& ratings) {
        int result=0;
        vector<int> nums(ratings.size(),1);
        for(int i=0 ; i<ratings.size()-1 ; i++)
        {
             if(ratings[i] < ratings[i+1])
            {
                nums[i+1] = nums[i] + 1;
            }
        }
        for(int i = ratings.size()-1 ; i>0 ;i--)
        {
             if(ratings[i] < ratings[i-1] )
            {
                nums[i-1] = max(nums[i-1], nums[i]+1);
            }
        }
        for(auto it:nums) result += it;
        return result;
    }
};


相关文章
|
6月前
|
测试技术
力扣888 公平糖果交换
力扣888 公平糖果交换
|
3月前
|
算法 Python
【Leetcode刷题Python】455.分发饼干
文章提供了解决LeetCode "分发饼干" 问题的Python实现代码,使用了排序和贪心算法。首先将孩子的胃口值和饼干的尺寸分别进行升序排序,然后通过双指针的方式遍历,尝试为每个孩子分配尺寸足够大的饼干,直到所有的孩子都得到满足或饼干分配完毕,返回满足的孩子数量的最大值。
20 2
|
5月前
|
存储 算法 数据可视化
如何使用多种算法解决LeetCode第135题——分发糖果问题
如何使用多种算法解决LeetCode第135题——分发糖果问题
|
5月前
|
算法
力扣经典150题第十五题:分发糖果
力扣经典150题第十五题:分发糖果
36 0
|
5月前
|
算法 机器人
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
|
5月前
|
算法 Java Go
【经典算法】LeetCode 1103 分糖果 II(Java/C/Python3实现含注释说明,Easy)
【经典算法】LeetCode 1103 分糖果 II(Java/C/Python3实现含注释说明,Easy)
79 0
|
6月前
|
算法
leetcode代码记录(分发饼干
leetcode代码记录(分发饼干
38 0
|
6月前
|
索引
[经典力扣面试题]135. 分发糖果
[经典力扣面试题]135. 分发糖果
|
6月前
leetcode:455. 分发饼干
leetcode:455. 分发饼干
33 0
|
6月前
|
Java
leetcode-135:分发糖果
leetcode-135:分发糖果
49 0