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;
    }
};
相关推荐
郝学胜_神的一滴6 分钟前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
考虑考虑9 分钟前
Java实现hmacsha1加密算法
java·后端·java ee
掉鱼的猫1 小时前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·spring boot
plainGeekDev1 小时前
广播接收器 → Flow + Lifecycle
android·java·kotlin
plainGeekDev1 小时前
EventBus → SharedFlow
android·java·kotlin
带刺的坐椅1 小时前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·springboot·web·solon
用户3721574261352 小时前
Java 将一个 PPT 文档拆分为多个文件
java
To_OC12 小时前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
人活一口气17 小时前
Spring Boot与AIGC的完美结合:从零搭建智能内容生成平台
java·spring boot·aigc
像我这样帅的人丶你还19 小时前
Java 后端详解(三):全局异常处理与 JPA 数据库映射
java·后端