C语言 | Leetcode C语言题解之第135题分发糖果

题目:

题解:

cpp 复制代码
int candy(int* ratings, int ratingsSize) {
    int ret = 1;
    int inc = 1, dec = 0, pre = 1;
    for (int i = 1; i < ratingsSize; i++) {
        if (ratings[i] >= ratings[i - 1]) {
            dec = 0;
            pre = ratings[i] == ratings[i - 1] ? 1 : pre + 1;
            ret += pre;
            inc = pre;
        } else {
            dec++;
            if (dec == inc) {
                dec++;
            }
            ret += dec;
            pre = 1;
        }
    }
    return ret;
}
相关推荐
biter down20 分钟前
C 语言17:位操作符 & | ^:从二进制编码到大小端
c语言·开发语言
努力学算法的蒟蒻28 分钟前
day11(11.11)——leetcode面试经典150
算法·leetcode·面试
永远都不秃头的程序员(互关)30 分钟前
C 语言文件读写初探:打开数据之门 [特殊字符]
c语言
im_AMBER31 分钟前
Leetcode 51
笔记·学习·算法·leetcode·深度优先
做怪小疯子38 分钟前
LeetCode 热题 100——哈希——字母异位词分组
算法·leetcode·哈希算法
小欣加油1 小时前
leetcode 474 一和零
c++·算法·leetcode·职场和发展·动态规划
楼田莉子4 小时前
Linux学习:进程的控制
linux·运维·服务器·c语言·后端·学习
云雾J视界6 小时前
C语言位运算深度应用:嵌入式硬件寄存器控制与低功耗优化实践
c语言·stm32·嵌入式硬件·低功耗·数据压缩·寄存器
爱coding的橙子6 小时前
每日算法刷题Day84:11.11:leetcode 动态规划9道题,用时2h
算法·leetcode·动态规划
努力努力再努力wz7 小时前
【Linux进阶系列】:线程(下)
linux·运维·服务器·c语言·数据结构·c++·算法