leetcode3751 范围内总波动值I

一、问题描述

二、解题思路

可以采用枚举+数字逐位分离的方法来解决这个问题,遍历区间,对于每一个数字i,计算其波动值:

<1>如果i<=100,表示其波动值为0;

<2>否则,进行滚动各位数字分离,更新next2,now,next1,如果now为峰或者谷,ret++,直至i==0;

三、代码实现

cpp 复制代码
class Solution {
public:
    int totalWaviness(int num1, int num2) {
        int ret=0;
        for(int i=num1;i<=num2;i++)
            ret+=sum(i);
        return ret;
    }

    int sum(int i){
        if(i<100) return 0;
        int ret=0;
        //数位分离
        //初始化
        int next1=i%10;i/=10;
        int now=i%10;i/=10;
        int next2=i%10;i/=10;
        if(now>next1&&now>next2||now<next1&&now<next2) ret++;
        
        while(i){
            next1=now;
            now=next2;
            next2=i%10;
            i/=10;
            if(now>next1&&now>next2||now<next1&&now<next2) ret++;
        }
        return ret;
    }
};
相关推荐
烛影摇红透纱窗1 小时前
ForkJoinPool 与工作窃取
java
卡提西亚1 小时前
leetcode-179. 最大数
python·算法
浩瀚地学1 小时前
【面试算法笔记】0302-哈希表-哈希表实现
java·经验分享·笔记·算法·面试
ECT-OS-JiuHuaShan1 小时前
严格证明:还原论是ASCII,整体论是UTF-8的历史意义和价值
开发语言·人工智能·算法·量子计算
ShallWeL1 小时前
【机器学习】(19)—— 数据特性与标签
人工智能·算法·机器学习
AC赳赳老秦1 小时前
时间开销自动统计:OpenClaw 记录工作任务时长、分析时间分配、给出优化建议
java·大数据·开发语言·python·自动化·deepseek·openclaw
Frostnova丶1 小时前
(17)LeetCode 41. 缺失的第一个正数
数据结构·算法·leetcode
名侦探7222 小时前
构建 Agent 的五大难点与解决方案
java·大数据·人工智能
Demons_kirit2 小时前
图库原理(以阿里云OSS为案例)
java·阿里云·云计算