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

Day 18:数字 1 的个数

给定一个整数 num,计算所有小于等于 num 的非负整数中数字 1 出现的个数。

示例 1:

输入:num = 0
输出:0

示例 2:

输入:num = 13
输出:6

LCR 162. 数字 1 的个数 - 力扣(LeetCode) 

暴力求解:复杂度太高

class Solution {
    public int digitOneInNumber(int num) {
        if (num < 1) {
            return 0;
        }

        int totalOnes = 0;
        for (int i = 1; i <= num; i++) {
            totalOnes += countOne(i);
        }
        return totalOnes;
    }

    public int countOne(int num){
    String str = Integer.toString(num);
    int count = 0;
    for (char c : str.toCharArray()) {
        if (c == '1') {
            count++;
        }
    }
    return count;
    }
}

参考那种滚轮密码锁。

我们设定当前位为cur,比如511322,当前位为3 ,那么我们不难发现,当前位为1时,个数有511*100种。  如果当前位为1,那么只有510*100+1*22种,当前位为0时,后三位为022,比100小,那么就只有511种。我们依次遍历这个数的各个位就行了。

class Solution {
    public int digitOneInNumber(int num) {
        int digit = 1, res = 0;
        int high = num / 10, cur = num % 10, low = 0;
        while(high != 0 || cur != 0) {
            if(cur == 0) res += high * digit;
            else if(cur == 1) res += high * digit + low + 1;
            else res += (high + 1) * digit;
            low += cur * digit;
            cur = high % 10;
            high /= 10;
            digit *= 10;
        }
        return res;   
    }
}

有点考研数学,做过一遍就会了。

相关文章:

  • DFT mode下hard phy STA Nopath
  • Go红队开发—日志打印优化
  • 子序列问题写法
  • 【嵌入式】复刻SQFMI开源的Watchy墨水屏电子表——(1)硬件部分
  • 方法的使用
  • 破解企业内部盗版软件管理难题的技术方案
  • LeetCode[206]反转链表
  • 51单片机指令系统入门
  • 深入理解蒸馏、Function Call、React、Prompt 与 Agent
  • 【白话神经网络(二)】矩阵、CNN、RNN
  • 【CF】Day9——Codeforces Round 953 (Div. 2) BCD
  • [OpenGL]使用OpenGL实现基于物理的渲染模型PBR(中)
  • 多模态模型Orpheus,基于病理图像的乳腺癌复发风险智能评估工具|顶刊解读·25-03-17
  • Muon: An optimizer for hidden layers in neural networks
  • java学习总结:JSP、Servlet
  • 【云原生之kubernetes实战】在k8s环境中部署OnlyOffice办公套件
  • 深入理解MySQL数据库索引
  • ONENET数据可视化命令框下发命令使用
  • 一文掌握 PostgreSQL 的各种指令(PostgreSQL指令备忘)
  • iptables与firewall的区别,从不同的角度讲解
  • 国家统计局今年将在全国开展两次人口固定样本跟访调查
  • 成都锦江区一在建工地起火,致2人遇难1人受伤
  • 耿军强任陕西延安市领导,此前任陕西省公安厅机场公安局局长
  • 非洲雕刻艺术有着怎样的“变形之美”
  • 普京提议于15日在土耳其恢复俄乌直接谈判
  • 鄂州:锁死中小学教师编制总量,核减小学编制五百名增至初中