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;
    }
};
相关推荐
土司大王3 小时前
LeetCode hot100——对称二叉树
算法·leetcode·职场和发展
sali-tec4 小时前
C# 基于OpenCv的视觉工作流-章106-差值追踪
图像处理·人工智能·opencv·算法·计算机视觉
Navigator_Z4 小时前
LeetCode //C - 1208. Get Equal Substrings Within Budget
c语言·算法·leetcode
手写码匠4 小时前
Dify 多 Agent 工具权限与安全沙箱实战:让智能体“有能力,但不越权“
人工智能·深度学习·算法·aigc
黎阳之光4 小时前
打破堆场感知黑盒:黎阳之光视频孪生,构建港口码头网格化透明管控新体系
大数据·人工智能·算法·安全·数字孪生
丘山一郎5 小时前
Spring 中的IOC控制反转 和DI依赖注入
java·后端·spring
码视野5 小时前
基于 Spring Boot + Vue3 的【大学英语四六级 (CET-4/6) 作文智能评分与句式润色系统】设计与实现(含PRD/三端高保真源码/大屏)
java·前端·人工智能·spring boot·后端·vue3
MetaLite5 小时前
Spring-AOP自调用为什么失效-AopContext真能解决吗
java·后端·spring
大模型码小白5 小时前
AI 对话流性能调优:万级消息的虚拟滚动落地
java·大数据·前端·javascript·人工智能·算法·机器学习
老当益壮梁奶奶5 小时前
Linux软件编程学习笔记(七):线程分离与线程间通信详解
linux·c语言·c++·笔记·学习