当前位置: 首页 > news >正文

宁波网络营销网站建设江苏做电缆桥架的公司网站

宁波网络营销网站建设,江苏做电缆桥架的公司网站,罗村网站制作,用js做的网站LeetCode 2719.统计整数数目 2719. 统计整数数目 - 力扣(LeetCode) 题目描述 给你两个数字字符串 num1 和 num2 ,以及两个整数 max_sum 和 min_sum 。如果一个整数 x 满足以下条件,我们称它是一个好整数: num1 &l…

LeetCode

2719.统计整数数目

2719. 统计整数数目 - 力扣(LeetCode)

题目描述

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

  • num1 <= x <= num2
  • min_sum <= digit_sum(x) <= max_sum.

请你返回好整数的数目。答案可能很大,请返回答案对 109 + 7 取余后的结果。

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

示例 1:

输入:num1 = "1", num2 = "12", min_num = 1, max_num = 8
输出:11
解释:总共有 11 个整数的数位和在 1 到 8 之间,分别是 1,2,3,4,5,6,7,8,10,11 和 12 。所以我们返回 11 。

示例 2:

输入:num1 = "1", num2 = "5", min_num = 1, max_num = 5
输出:5
解释:数位和在 1 到 5 之间的 5 个整数分别为 1,2,3,4 和 5 。所以我们返回 5 。

提示:

  • 1 <= num1 <= num2 <= 1022
  • 1 <= min_sum <= max_sum <= 400

思路

无思路、cv大法

看题解的思路是数位DP

代码

C++
static constexpr long long mod = 1e9 + 7;
using LL = long long;
class Solution {public:int Min_sum, Max_sum;LL calc(string s) {LL m = s.size();vector memo(25, vector<LL>(450, -1));function<LL(LL, LL, bool, bool)> dfs = [&](LL i, LL cnt, bool is_limit, bool is_num) -> LL {if (i == m) return cnt >= Min_sum and cnt <= Max_sum;if (!is_limit and is_num and memo[i][cnt] != -1) return memo[i][cnt];LL res = 0;if (!is_num) {res += dfs(i + 1, cnt, false, false);res %= mod;}int up = is_limit ? s[i] - '0' : 9;int low = is_num ? 0 : 1;for (int d = low; d <= up; ++d) {res += dfs(i + 1, cnt + d, is_limit and d == up, true);res %= mod;}if (!is_limit and is_num) memo[i][cnt] = res;return res;};return dfs(0, 0, true, false);}bool check(string s) {int cnt = 0;for (char c : s) cnt += c - '0';return cnt >= Min_sum and cnt <= Max_sum;}int count(string num1, string num2, int min_sum, int max_sum) {Max_sum = max_sum;Min_sum = min_sum;LL ans = calc(num2) - calc(num1) + check(num1);return (ans % mod + mod) % mod;}
};
Java
class Solution {
static final long mod = 1000000007;int Min_sum, Max_sum;public long calc(String s) {int m = s.length();long[][] memo = new long[25][450];for (int i = 0; i < 25; i++) {Arrays.fill(memo[i], -1);}return dfs(0, 0, true, false, s, m, memo);}private long dfs(int i, int cnt, boolean is_limit, boolean is_num, String s, int m, long[][] memo) {if (i == m) return cnt >= Min_sum && cnt <= Max_sum ? 1 : 0;if (!is_limit && is_num && memo[i][cnt] != -1) return memo[i][cnt];long res = 0;if (!is_num) {res += dfs(i + 1, cnt, false, false, s, m, memo);res %= mod;}int up = is_limit ? s.charAt(i) - '0' : 9;int low = is_num ? 0 : 1;for (int d = low; d <= up; ++d) {res += dfs(i + 1, cnt + d, is_limit && d == up, true, s, m, memo);res %= mod;}if (!is_limit && is_num) memo[i][cnt] = res;return res;}public boolean check(String s) {int cnt = 0;for (char c : s.toCharArray()) cnt += c - '0';return cnt >= Min_sum && cnt <= Max_sum;}public int count(String num1, String num2, int min_sum, int max_sum) {Max_sum = max_sum;Min_sum = min_sum;long ans = calc(num2) - calc(num1) + (check(num1) ? 1 : 0);return (int) ((ans % mod + mod) % mod);}
}

image-20240116083138872

image-20240116083150305

http://www.yayakq.cn/news/519769/

相关文章:

  • 网站建设和假设我要免费建立一个网站吗
  • 苏州最好的网站建设网站做优化有什么用吗
  • 如何查询网站域名备案信息用jsp做的可运行的网站
  • 网站的内部优化公司抚州律师网站建设
  • 南通企业网站徐州做网站哪个好
  • wordpress 建的网站吗上海网络宣传公司
  • 做图软件ps下载网站有哪些wordpress安装创建数据库文件目录
  • 番禺网站建设专家进一步优化供给推动消费平稳增长
  • 乌兰察布做网站公司wordpress查看分类id
  • 网站推广方式案例2022年电商数据分析
  • 做ppt的网站叫什么软件wordpress上传mp4
  • 网站pv uv是什么意思允许发外链的网站
  • 怎样注册网站卖东西全国职业生涯规划大赛官网
  • 加强局网站建设报告眉山网站建设哪家好
  • 制作网站建网站商城网站如何做
  • 太原seo网站排名上海网站建设公司怎么样
  • WordPress整站下载器wordpress 下载选择
  • 建个短视频网站网站建设业务活动
  • 化州+网站建设网站设计模板 英文翻译
  • 购物商城网站功能设计花都营销网站建设
  • 手机网站建设的整体流程近期的新闻热点
  • 教人做美食视频网站网站域名域名
  • wordpress 企业网站微信公众号网页如何制作
  • 怎么学网站建设微信网站的建立
  • 做网站模板和服务器是一样的吗无人区高清免费网页直播
  • 营销型网站网站设计安装2个wordpress
  • 榆林市住房和城市建设局网站做一年的网站能赚多少钱
  • 做网站业务员应该了解什么桂林北站到龙脊梯田
  • 南宁网站建设云尚网络零点研究咨询集团官方网站建设
  • 哪里有做杂志的免费模板下载网站wordpress 调用指定文章