LeetCode 3870.统计范围内的逗号:模拟 或 一步计算

【LetMeFly】3870.统计范围内的逗号:模拟 或 一步计算

力扣题目链接:https://leetcode.cn/problems/count-commas-in-range/

给你一个整数 n。

返回将所有从 [1, n](包含两端)范围内的整数以 标准 数字格式书写时所用到的逗号总数。

在标准格式中:

  • 从右边开始,每 三位数字后插入一个逗号。
  • 位数 少于四位的数字不包含逗号。

示例 1:
输入: n = 1002

输出: 3

解释:

数字 "1,000"、"1,001" 和 "1,002" 每个都包含一个逗号,总计 3 个逗号。

示例 2:
输入: n = 998

输出: 0

解释:

从 1 到 998 的所有数字位数都少于四位,因此没有使用逗号。

提示:

  • 1 <= n <= 105

解题方法一:模拟

从 1000 1000 1000到 n n n模拟,计算每个数字十进制下的位数(当数字非零时候不断除以 10 10 10并向下取整),则逗号数量为 位数 − 1 3 \frac{位数-1}{3} 3位数−1。

  • 时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
cpp 复制代码
/*
 * @LastEditTime: 2026-09-08 12:36:37
 */
class Solution {
private:
    int cal(int n) {
        int len = 0;
        while (n) {
            len++;
            n /= 10;
        }
        return (len - 1) / 3;
    }
public:
    int countCommas(int n) {
        int ans = 0;
        for (int i = 1000; i <= n; i++) {
            ans += cal(i);
        }
        return ans;
    }
};

解题方法二:一步计算

不难发现题目的数据范围是 1 ≤ n ≤ 10 5 1\leq n\leq 10^5 1≤n≤105,而 1 ≤ n ≤ 999 1\leq n\leq 999 1≤n≤999的数字没有逗号, 1000 ≤ n ≤ 10 5 1000\leq n\leq 10^5 1000≤n≤105的数字每个数字有一个逗号,所以直接返回 999 999 999到 n n n的数字个数即可。

  • 时间复杂度 O ( 1 ) O(1) O(1)
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
cpp 复制代码
/*
 * @LastEditTime: 2026-09-08 12:38:43
 */
class Solution {
public:
    int countCommas(int n) {
        return max(0, n - 999);
    }
};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

相关推荐
Discipline10293 小时前
尼泊尔河流流量:天气驱动的预测与高流量风险
人工智能·算法
XuCoder4 小时前
改一个数,右边全得重算,这题怎么扛住两万次查询
算法
小羊没烦恼!4 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
weixin_307779134 小时前
基于睿擎工业开发平台的预训练视觉模型轻量化适配与低代码部署优化
开发语言·算法
hold?fish:palm5 小时前
45 二叉树的右视图
开发语言·c++·算法
粤鼎恒业5 小时前
惠州工厂电子料回收厂家推荐:从交接单反推筛选标准
大数据·数据库·算法·硬件架构·硬件工程·pcb工艺·材料工程
小爷毛毛(卓寿杰)5 小时前
【Agent 意图识别】输出协议、评估与置信度
人工智能·算法·大模型·prompt·大语言模型·agent
优质酸酸乳5 小时前
力扣100题之21合并两个有序链表
算法·leetcode·链表
旖旎夜光6 小时前
LeetCode 137 : 只出现一次的数字 II(位运算) —— 题解
c++·笔记·学习·算法·leetcode·力控
旋生万物6 小时前
Agent System Prompt 注入螺旋公理:让 AI 推理不跑偏的可复制模板(附完整 Prompt)
人工智能·算法