leecode2719 | 统计整数数目

给你两个数字字符串 num1 和 num2 ,以及两个整数 max_sum 和 min_sum 。如果一个整数 x 满足以下条件,我们称它是一个好整数:

num1 <= x <= num2
min_sum <= digit_sum(x) <= max_sum.
请你返回好整数的数目。答案可能很大,请返回答案对 109 + 7 取余后>的结果。

注意,digit_sum(x) 表示 x 各位数字之和。

class Solution {const int MOD = 1'000'000'007;int calc(string& s, int min_sum, int max_sum){int n = s.length();vector<vector<int>> memo(n, vector<int>(min(9*n, max_sum) + 1, -1));function<int(int, int, bool)> dfs = [&](int i, int sum, bool is_limit) -> int{if(sum > max_sum){return 0;}if(i == n){return sum >= min_sum ? 1 : 0;}if(! is_limit && memo[i][sum] != -1){return memo[i][sum];}int up = is_limit ? s[i] - '0' : 9;int res = 0;for(int d = 0; d <= up; d++){res = (res + dfs(i + 1, sum + d, is_limit &&d == up))% MOD;}if(!is_limit){memo[i][sum] = res;}return res;};return dfs(0, 0, true);}
public:int count(string num1, string num2, int min_sum, int max_sum) {int ans = calc(num2, min_sum, max_sum) - calc(num1, min_sum, max_sum) + MOD;int sum = 0;for(char x : num1){sum += x - '0';}ans += min_sum <= sum && sum <= max_sum;return ans % MOD;}
};

################################################

//之前写的一个通俗易懂的暴力  结果超时
class Solution {
public:int count(string num1, string num2, int min_sum, int max_sum) {int min_ = 0, max_ = 0;int num1_ = std::atoi(num1.c_str()), num2_ = std::atoi(num2.c_str());while(num1_ != 0){min_ = min_ *10 + num1_ % 10;num1_  /=10;}while(num2_ != 0){max_ = max_ *10 + num2_ % 10;num2_ /=10;}int ans = 0;for(int i = min_; i <= max_; ++i){int x = 0;while(i != 0){x += i % 10;i /= 10;}if(x >= min_sum && x <= max_sum){ans ++;}}//return (int)(ans%(1e9 + 7));return static_cast<int>(fmod(ans, 1e9 + 7));}
};

##############################################
后面继续详细分析数位这类题型 以及其核心思想

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/626465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

极智芯 | 解读自动驾驶芯片之高通骁龙Ride系列

欢迎关注我的公众号「极智视界」,获取我的更多技术分享 大家好,我是极智视界,本文分享一下 解读自动驾驶芯片之高通骁龙Ride系列。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq 对于自动驾驶芯片,之…

抖音弹幕玩法汉字找不同让鼠标指针自动漂浮的实现原理及代码

如下图&#xff0c;抖音直播间弹幕互动玩法&#xff0c;为了增强用户的视觉感知体验&#xff0c;在里面加了一个鼠标&#xff0c;来让用户感知到自己在操作。下一节我们将背景音乐也给加上去。 我们实现的方案是用anime.js动画&#xff0c;来让一个图片在指定区域范围内随机漂浮…

PDF文件中字体乱码的一种简单的处理方法

要解决问题先得碰到问题&#xff0c;碰到问题就迈出了解决问题的关键一步。 问题PDF文件的下载链接 这文件用Acrobat打开&#xff0c;无法搜索文本&#xff0c;复制文本出来也都是乱码。但用sumatra PDF打开就不存在这个问题&#xff01; 用Acrobat的印前检查解决。prefligh…

解决kubelet报failed to get imageFs info: non-existent label \“docker-images\“

问题&#xff1a; 一环境主机重启后&#xff0c;查看kubelet日志经常有大量无法回收镜像文件报错&#xff0c;会导致kubelet的pleg不健康&#xff0c;从而导致kubelet发生重启。报错如下&#xff1a; 解决办法 解决方法一&#xff1a; systemctl stop docker systemctl stop …

解锁Python神器vars:让你的代码瞬间脱颖而出!

vars()函数是一个内置函数&#xff0c;用于返回对象的__字典__&#xff0c;其中包含对象的__属性__。它适用于模块、类和实例对象&#xff0c;为你提供了访问对象属性的便捷方式。 1. vars() 函数概述 vars()函数有两种使用方式&#xff1a; 不带参数&#xff1a;返回当前作…

<软考高项备考>《论文专题 - 69 风险管理(1) 》

1 论文基础 1.1 写作要点 过程定义、作用写作要点、思路规划风险管理是定义如何实施项目风险管理活动的过程。作用:确保风险管理的水平、方法和可见度与项目风险程度相匹配&#xff0c;与对组织和其他干系人的重要程度相匹配。风险管理计划的内容、编写原则。结合风险管理计划…

20240104金融读报1分钟小得

数字技术引领将是补齐金融机构在普惠金融服务质量、效率等方面短板的有效方式 从省农担的名单制管理-》整村担保&#xff08;整个村子都担保&#xff0c;具体售给谁由银行决定&#xff09;

SAP不同语言开发

文章目录 1 Please write English Nmae2 go to goto menu and translation3 Write your target language .4 Please input Chinese5 Summary 1 Please write English Nmae 2 go to goto menu and translation 3 Write your target language . 4 Please input Chinese 5 Summary…

LeetCode——2085. 统计出现过一次的公共字符串

通过万岁&#xff01;&#xff01;&#xff01; 题目&#xff1a;给你两个字符串数组&#xff0c;然后让你统计字符串数组中&#xff0c;出现过分别只出现过一次的字符串的个数。思路&#xff1a;直接两个map&#xff0c;用于分别统计每个字符串数组中字符出现的次数。然后遍历…

从理论到实践:数字孪生技术的全面应用探讨

数字孪生是一种将实际物体或系统的数字模型与其实时运行状态相结合的概念。这一概念的核心在于创建一个虚拟的、与真实世界相对应的数字副本&#xff0c;以便监测、分析和优化实体系统的性能。 简单理解&#xff0c;数字孪生就是在一个设备或系统的基础上&#xff0c;创造一个…

pycharm 非局域网下 远程连接服务器docker中的conda环境

前提条件&#xff1a;有外网ip。 可以买个阿里云域名&#xff08;一般实验室配置&#xff09; 用蒲公英&#xff08;参考我的这篇文章&#xff0c;一般是个人使用&#xff0c;免费三个用户&#xff09; https://blog.csdn.net/weixin_75205835/article/details/135159099?spm1…

nohup指定输出日志名称

在使用 nohup 命令时&#xff0c;如果你想将命令执行的输出&#xff08;包括标准输出(STDOUT)和标准错误输出(STDERR)&#xff09;重定向到一个指定的日志文件中&#xff0c;可以这样操作&#xff1a; nohup your_command > /path/to/output.log 2>&1 & 这里&a…

鸿蒙系列--数据管理

一、首选项 1.概述 首选项为应用提供Key-Value键值型的数据存储能力&#xff0c;支持应用持久化轻量级数据&#xff0c;并对其进行增删改查等 该存储对象中的数据会被缓存在内存中&#xff0c;有更快的存取速度 2.特点 以Key-Value形式存储数据 Key是不重复的关键字&#xf…

MySQL、Oracle 获取当前系统时间、年份、季度、月份、日期、天数、周数

目录 获取系统时间 MySQL: NOW()&#xff0c;Oracle: SYSDATE1 MySQL 获取相关时间1.1 获取当前系统时间、当前日期、当前时间1.1.1 获取当前系统时间&#xff1a;NOW()1.1.2 获取当前日期&#xff1a;CURDATE()1.1.3 获取当前时间&#xff1a;CURTIME() 1.2 获取当前年份、季度…

使用Python开发连连看游戏的技术指南

引言&#xff1a; 连连看是一种经典的益智游戏&#xff0c;通过连接相同的图标来消除它们&#xff0c;并在规定的时间内完成关卡。本文将介绍如何使用Python开发连连看游戏&#xff0c;并提供设计HUD、监听鼠标移动、显示视图和游戏菜单的详细代码案例&#xff0c;帮助读者更好…

PLM系统哪个好?哪个PLM系统好?

PLM系统哪个好&#xff1f;哪个PLM系统好&#xff1f; 选择适合的PLM系统需要综合考虑企业的具体需求、系统功能、易用性、技术支持和成本等多个因素。目前市场上有很多知名的PLM系统&#xff0c;各有其特点和优势。以下是一些被广泛认可的PLM系统&#xff1a; 彩虹PLM系统&…

统计学-R语言-4.7

文章目录 前言描述水平的统计量平均数分位数中位数四分位数 众数描述差异的统计量&#xff08;数据离散程度&#xff09;极差四分位差方差和标准差变异系数标准分数 描述分布形状的统计量偏度与偏度系数峰度与峰度系数 数据的综合描述综合描述的R函数综合描述的实例 总结 前言 …

谷歌地图多个maker标记点击显示当前信息弹窗infowindow

1、初始化好谷歌地图后&#xff0c;再创建一个infowindow对象&#xff0c;下面是自己封装的方法 this.infowindow this.map.createInfoWindow({ pixelOffset: new google.maps.Size(-30, -40) })// 水平偏移量为0&#xff0c;垂直偏移量为-50 2、然后创建好maker后&#xff0c…

Python沙箱逃逸终极指南:安全漏洞分析和解决方案一网打尽

概要 Python 是一种强大而灵活的编程语言&#xff0c;但在某些情况下&#xff0c;可能需要运行不受信任的代码&#xff0c;同时又希望限制它的行为&#xff0c;以防止对系统的不良影响。这时&#xff0c;Python 沙箱就成为一种有用的工具&#xff0c;它可以帮助你在安全的环境…

js 回文串

思路&#xff1a; 判断一个字符串是否为回文字符串的基本思路是比较字符串的正序和倒序是否相同。 两者相同&#xff0c;则该字符串是回文字符串&#xff0c;否则不是。 要实现这一思路&#xff0c;我们可以使用 JavaScript 字符串的一些方法。我是忽略了所有的空格和符号&…