leetcode 902. Numbers At Most N Given Digit Set

news2024/9/21 4:24:55

题目链接

Given an array of digits which is sorted in non-decreasing order. You can write numbers using each digits[i] as many times as we want. For example, if digits = ['1','3','5'], we may write numbers such as '13''551', and '1351315'.

Return the number of positive integers that can be generated that are less than or equal to a given integer n.

单纯的进制问题,没有0好做多了

以n是一个m位数为举例,如果是k进制,那么位数小于m的数包括,1位k个数,2位k^2 ..... m-1位k^(m-1);  把这些数相加

再计算位数为m的数,看n的当前位上的数s[i]在k个数digits的位置

如果s[i]大于k个数中j个数,那么后面低位排列组合就是:j * k^(当前第几位-1)

s[i] ==digits[j] 刚好在位置上的就计算下一位;

s[i]不在digits中就没必要继续计算了,因为没有边界问题了

class Solution {
public:
    int atMostNGivenDigitSet(vector<string>& digits, int n) {
        bool dg[10] = {false}, stl=true;
        for (auto c : digits) dg[c[0]-'0'] = true;
        long dp[11] = {0},dlen = digits.size(), rst = 0, cl;
        dp[0] =1;
        for (int i = 1 ; i < 11; i++) dp[i] = dlen*dp[i-1];
        auto s = to_string(n);
        int slen = s.size();
        for (int i = 0 ; i< slen; i++) {
            rst += dp[slen -i -1];
            
            if (stl) {
                cl = 0;
                for (int j = 0; j< s[i]- '0'; j++) if (dg[j]) cl++;
                if (i==slen-1 && dg[s[i]-'0']) cl++;
                rst += dp[slen -i -1] *cl;
                if(!dg[s[i]-'0']) stl = false;
            }
        }
        return rst-1;
    }
};

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

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

相关文章

Docker续6:容器网络

1.bridge-utils 一个用于Linux系统的网络桥接工具集。它提供了一些命令行工具&#xff0c;帮助用户创建、管理和配置网络桥接。网络桥接是一种将多个网络接口连接在一起&#xff0c;以使它们能够作为单个网络段进行通信的技术。 bridge-utils 常用的命令包括&#xff1a; b…

大阪OSAKA分子泵电源TC163HTC203TC353TC523TC1104TC553TC1813手侧

大阪OSAKA分子泵电源TC163HTC203TC353TC523TC1104TC553TC1813手侧

六、泛型事件框架

一、创建一个BaseEventSO的 基类 写一个泛型事件《T》 启动事件?.Invoke 二、创建一个监听类 同样泛型匹配Event的监听事件 创建OnEable在其中注册事件&#xff1b;OnDisable中注销事件 写一个if语句进行判断是否为空 三、创建一个ObjectEvent 传递Object 原因&#xf…

axios发送post请求实例

在body中的数据格式又有两种&#xff0c;一种是 json 数据格式&#xff0c;另一种是 字符串。具体要用哪种格式取决于后端入参的格式。 如果后端接收json数据类型&#xff0c;post 的 headers 需要设置 { ‘content-type’: ’application/json’ }&#xff0c;传给后端的数…

初学流量分析

一、基本知识 比赛中提供一个包含流量数据的 PCAP 文件&#xff0c;有时候也会需要选手们先进行修复或重构传输文件后&#xff0c;再进行分析。 PCAP 这一块作为重点&#xff0c;复杂的地方在于数据包里充满着大量无关的流量信息&#xff0c;因此如何分类和过滤数据是参赛者需…

stm32f103c8t6引脚功能

STM32F103C8T6拥有丰富的引脚功能&#xff0c;主要包括广泛的GPIO引脚、多种通信接口和特定的调试及电源管理引脚。 STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器&#xff0c;广泛应用于各种嵌入式系统设计中。它具有72MHz的处理速度&#xff0c;搭载128KB的Flash内存…

行业寒冬下的职场生态:卷与痛的交响曲

在2024年的初春&#xff0c;当万物复苏的季节理应带来希望与机遇之时&#xff0c;职场却笼罩在一片前所未有的“寒冬”之中。经济的波动、技术的快速迭代以及市场需求的微妙变化&#xff0c;共同编织了一幅复杂而严峻的行业图景。工作岗位的数量锐减&#xff0c;质量下滑&#…

域名解析DNS服务

DNS服务基础知识 DNS&#xff1a;Domain Name System (域名系统) DNS 是互联网上解决网络中机器命名的一种系统。在网络中&#xff0c;一台主机去访问另外一台主机时&#xff0c;必须要 知道目标主机的IP地址&#xff0c;虽然网络上的节点都可以用IP地址来标识&#xff0c;并且…

Unity | 基础知识

装箱和拆箱&#xff1a; 获取对方的类型&#xff1a; GetType通过打点调用 as进行类型转换 运用Convert进行类型转换&#xff1a; 二维数组的定义 结构体类型 不同名称空间来调用&#xff1a;

构建开发全能型档期预约系统

档期预约系统作为一种高效的时间管理和资源分配工具&#xff0c;在现代社会中的应用越来越广泛。以下是关于档期预约系统的详细分析&#xff1a; 一、系统概述 档期预约系统旨在帮助各类服务机构&#xff08;如医疗机构、美容院、教育培训机构等&#xff09;优化服务流程&…

低代码开发平台:重塑未来软件开发格局的关键力量

低代码开发平台正以前所未有的速度改变着软件开发的面貌&#xff0c;通过最小化手动编码&#xff0c;让用户能够迅速构建应用程序。随着企业对敏捷性和创新能力的追求日益增强&#xff0c;这类平台的需求激增。展望未来&#xff0c;技术进步与市场动态将引领低代码开发进入新的…

实习的一点回顾单元测试

多看看这个&#xff0c;生动 java - Spring、Spring Boot和TestNG测试指南 - 使用Mockito - 颇忒脱 - SegmentFault 思否 如何在Springboot项目中添加testngmockitojacoco单元测试_spring testng mockito-CSDN博客 1.介绍 TestNG 和 Mockito 是 Java 测试框架和库&#xff0…

从零开始学cv-13:形态学变换进阶操作

文章目录 前言一、孔洞填充二、形态学凸壳与细化 前言 通过上文的学习&#xff0c;我们已经基本掌握了基本的形态学操作&#xff0c;并且可以根据这些操作解决大部分实际问题&#xff0c;但还有一些单纯依靠上述算法难以解决的问题&#xff0c;下面我们来举几个更复杂的形态学…

基于单片机的家居环境监测系统的设计

本设计基于单片机的家居环境监测系统&#xff0c;采用STM32F103C6T6单片机作为主要的控制芯片&#xff0c;环境监测方面采用SHT30模块实现室内温度和湿度的监测&#xff1b;有害气体监测方面&#xff0c;用MQ-7传感器实现室内一氧化碳气体的监测&#xff1b;采用WIFI模块连接指…

BP神经网络学习内容分享:前向传播与后向传播

在深度学习和神经网络领域&#xff0c;BP&#xff08;Backpropagation&#xff0c;反向传播&#xff09;神经网络是一种非常基础且广泛应用的网络结构。它通过前向传播进行预测&#xff0c;并通过反向传播算法调整网络权重以优化预测结果。本文将详细介绍BP神经网络的前向传播和…

OrangePi AIpro 香橙派 昇腾 Ascend C算子开发 - NCHW和NHWC格式在内存中的存储方式及遍历方法

OrangePi AIpro 香橙派 昇腾 Ascend C算子开发 - NCHW和NHWC格式在内存中的存储方式及遍历方法 flyfish 从计算机硬件的角度来看&#xff0c;内存本质上是线性的一维数组 。尽管在编程时可以使用多维数组或更复杂的数据结构&#xff0c;但这些多维数据最终都被线性化存储在内…

FactoryBean 实战练习 - 注入自定义 Date

java.util.Date在Spring中被当做简单类型&#xff0c;简单类型在注入的时候可以直接使用value属性或value标签来完成。但是对于Date类型来说&#xff0c;采用value属性或value标签赋值的时候&#xff0c;对日期字符串的格式要求非常严格&#xff0c;必须是这种格式的&#xff1…

2) gaussian-splatting模型查看

本文在上面环境配置好的基础上&#xff0c;下载模型并查看&#xff0c;主要分享SIBR_viewers的编译流程&#xff0c;并简单分析SIBR_gaussianViewer_app的源码结构 目录 1 SIBR_viewers的编译2 SIBR_gaussianViewer_app源码解析 内容 1 SIBR_viewers的编译流程 用CMake配置项…

幂等的 4 种通用方案,一次性吃透

兄弟们&#xff0c;79 节了&#xff0c;59元100个案例&#xff08;实战源码文档技术支持&#xff09; 涵盖&#xff1a;高并发、接口性能优化、幂等、超卖、MQ专题、分布式事务、分库分表、常见问题排查、接口签名、接口加解密等各种实战案例&#xff1b;需要的朋友加我微信&am…

亦菲喊你来学机器学习(18) --TF-IDF方法

文章目录 TF-IDF词频TF逆文档频率IDF计算TF-IDF值 应用实验使用TF-IDF1. 收集数据2. 数据预处理3. 构建TF-IDF模型对象4. 转化稀疏矩阵5. 排序取值完整代码展示 jieba分词总结 TF-IDF TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff0c;词频-逆文档频率…