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 小时前
C++左值与右值:核心判断法则详解
开发语言·c++
闪电悠米2 小时前
黑马点评-Redisson-01_why_redisson
java·服务器·网络·数据库·缓存·wpf
星轨zb2 小时前
LangChain4j 集成 Spring Boot:会话记忆 NPE 的根源与 ChatMemoryProvider 正确配置
java·spring boot·后端·langchain4j
JAVA9652 小时前
JAVA面试-并发篇 05-并发包AQS队列实现原理是什么
java·开发语言·面试
JAVA面经实录9172 小时前
RocketMQ全套学习知识手册
java·kafka·rabbitmq·rocketmq
玖玥拾2 小时前
C/C++ 基础笔记(七)
c语言·c++
phltxy2 小时前
Spring AI 从提示词到多模态
java·人工智能·spring
Halo_tjn2 小时前
反射与设计模式1
java·开发语言·算法
神仙别闹2 小时前
基于Python + SQL server 实现(GUI)原神圣遗物管理与角色数值模拟系统
java·数据库·python