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;
    }
};
相关推荐
周末也要写八哥2 小时前
经典算法实例:游戏中弱角色的数量(二)
算法
是Yu欸2 小时前
鸿蒙PC移植:2048 从网页小游戏到 AI 桌面应用
大数据·人工智能·算法·数据挖掘·openharmony·codex
鹿角片ljp3 小时前
KV Cache 解析
java·算法
captain3763 小时前
网络原理(9)-数据链路层
java·网络协议·java-ee
liliangcsdn3 小时前
IVOL与偏度因子的对比测量分析
算法
惊讶的猫3 小时前
意图识别置信度和检索重排的分数
java
qq_199886873 小时前
第6板块·第4节:构建系统与多文件项目
c++·人工智能·gpu算力
caoerzhong4 小时前
仓库管理数字化趋势解读:JeeWMS 开源 Java WMS 视角下的五个演进方向
java·开源
程序员JerrySUN4 小时前
Jetson Edge AI 实战01:Nano、Xavier、Orin 怎么选?Jetson 硬件选型详解【视频讲解】
java·数据库·redis·安全·mybatis