力扣(LeetCode)12. 整数转罗马数字(C++)

news2025/7/18 7:45:10

模拟

罗马数字和掰手指数数的区别在于, I V / I X IV/IX IV/IX 这类倒着数数的,和阿拉伯数字最大的区别在于 5 5 5 1 0 k 10^k 10k k ∈ N k\isin N kN ,需要被表示出来。所以除了记录 I / X / C / M I/X/C/M I/X/C/M —— 1 / 10 / 100 / 1000 1/10/100/1000 1/10/100/1000,还要记录 V / L / D V/L/D V/L/D—— 5 / 50 / 500 5/50/500 5/50/500 ,以及倒着数数的 I V / I X / X L / X C / C D / C M IV/IX/XL/XC/CD/CM IV/IX/XL/XC/CD/CM—— 4 / 9 / 40 / 90 / 400 / 900 4/9/40/90/400/900 4/9/40/90/400/900 。 类比十进制 , 从大到小 , 循环编码即可。

代码展示

class Solution {
public:
    string intToRoman(int num) {
        string ans="";
        int nums[] = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
        string roman[] = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
        for(int i =0;i<13;i++){
            while(num>=nums[i]){
                num-=nums[i];
                ans +=roman[i];
            }
        }
        return ans;
    }
};

时间复杂度 O ( l o g n ) O(logn) O(logn) n n n n u m num num 的大小,循环编码时间复杂度 O ( l o g n ) O(logn) O(logn)

空间复杂度 O ( ∣ C ∣ ) O(|C|) O(C) , 编码的空间复杂度 O ( ∣ C ∣ ) O(|C|) O(C) ∣ C ∣ = 13 |C| = 13 C=13

博主致语

理解思路很重要!
欢迎读者在评论区留言,作为日更博主,看到就会回复的。

ACAC

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

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

相关文章

activiti-image-generator

activiti-image-generator目录概述需求&#xff1a;设计思路实现思路分析1.ActivitiImageException2.ProcessDiagramGenerator3.ProcessDiagramSVGGraphics2D4.ProcessDiagramDOMGroupManager5.DefaultProcessDiagramGenerator参考资料和推荐阅读Survive by day and develop by…

Smart point智能指针(part.1)

1&#xff1a;为什么出现智能指针   为了避免多个指针指向一个对象的时候 销毁其中一个point 其他的point就会变成空point 或者多次删除被指向对象而发生报错   或者单纯删除指针 不删除其指向的对象 当最后一个指向对象被删除的时候 对象依然存在 造成资源泄露  智能指针…

MATLAB continue语句

详细例子&#xff1a; 在MATLAB中建立一个脚本文件&#xff0c;并输入下述代码&#xff1a; a 10; %while loop execution while a < 20if a 15% skip the iteration a a 1;continue;endfprintf(value of a: %d , a);a a 1; end 运行该文件&#xff0c;显示下…

unet医学肺部ct图分割简单记录

UNet医学图像分割 说明&#xff1a; 本项目采用pytorch——gpu——cuda11.6本项目用的UNet网络架构一、硬件&#xff1a; Windows GPU 二、软件环境安装&#xff1a; pytorchNibabel 三、用法&#xff1a; 医学数据采集为kaggle的官网新冠肺炎ct图数据预处理&#xff1a;1…

青少年python系列 45.文件操作1

青少年python系列目录_老程序员115的博客-CSDN博客 青少年python教学视频ppt源码 在计算机信息时代&#xff0c;我们知道文本文件可存储的数据量多得难以置信&#xff0c;例如气象站的天气数据、交管部门的交通数据、金融商业街的社会经济数据、电子图书馆或博物馆的文学作品等…

做斗音都要经历的几个时期,你目前处于哪个阶段呢?

大家好&#xff0c;我是我赢助手&#xff0c;专注于自媒体短视频去水印、去重和文案提取运营。 今天给大家分享下做斗音的几个时期 1、兴奋期 听别人说斗音遍地是黄金开始到处学艺买资料准备大干一场。 这时是最关键的&#xff0c;能学到可以实操的项目才是最重要的&#x…

施耐德PLC TM218如何实现远程上传下载程序?

施耐德TM218支持IEC61131-3标准的六种编程语言&#xff0c;具备模块化、结构紧凑、功能全面等特点&#xff0c;在工业控制领域应用广泛&#xff0c;是市场上常见的产品之一&#xff0c;性价比较高。 因此&#xff0c;对于采购施耐德PLC的企业来说&#xff0c;通过PLC程序的上下…

【18-业务开发-基础业务-商品模块-分类管理-前后端管理系统的启动-为分类管理表增加数据-Json插件的下载-返回具有层级目录、父子关系结构的数据】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了&#xff0c;请点击这里&#xff01;】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

内网渗透神器CobaltStrike之DNS Beacon(四)

DNS隧道简介 利用DNS隧道进行攻击的现象已存在多年&#xff0c;将数据封装在DNS协议中传输&#xff0c;大部分防火墙和入侵检测设备很少会过滤DNS流量&#xff0c;僵尸网络和入侵攻击可几乎无限制地加以利用&#xff0c;实现诸如远控、文件传输等操作 DNS隐蔽隧道建立通讯并盗…

matplotlib教程二

文章目录一. 条形图1.1 简介1.2 垂直条形图1.3 水平条形图二. 直方图2.1 简介2.2 API2.3 直方图绘制三. 饼图3.1 简介3.2 API3.3 饼图绘制四. 散点图4.1 简介4.2 API4.3 散点图绘制五. 箱形图5.1 简介5.2 API5.3 绘制箱状图六. 轮廓图6.1 简介6.2 轮廓图绘制七. 图像内的文字、…

Android Studio实现一个点餐系统

点餐系统作业要求效果登录注册欢迎页用户管理菜品种类管理菜品管理订单查询点餐源码导读手把手编写注册、用户管理板块新建实体类User新建User服务新建注册活动用户管理作业要求 功能&#xff1a; 1&#xff0e;数据管理 菜品类别&#xff1a;凉菜&#xff1b;热菜&#xff1b;…

投资组合优化的人工蜂群算法(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

力扣(LeetCode)1732. 找到最高海拔(C++)

前缀和 这道题&#xff0c;很容易看出&#xff0c;gaingaingain (海拔高度差) 是海拔高度的一个差分&#xff0c;对 gaingaingain 用前缀和&#xff0c;就能求出每个点的海拔了。题目要求我们&#xff0c;找最高海拔&#xff0c;那么只需要维护一个变量 ansansans &#xff0c…

【NLP】使用 BERT 和 PyTorch Lightning 进行多标签文本分类

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

【论文精读5】MVSNet系列论文详解-Point-MVSNet

Point-MVSNet全文名称&#xff1a;Point-Based Multi-View Stereo Network&#xff0c;是2019提出的使用coarse-to-fine方法来优化深度图推断过程的网络结构&#xff0c;与上一篇CVP-MVSNet都是迭代优化的思想&#xff0c;不同的是Point-MVSNet在点云上进行操作&#xff0c;而C…

基于51单片机的二氧化碳(CO2)气体浓度监测报警系统

基于51单片机的二氧化碳&#xff08;CO2&#xff09;气体浓度监测报警系统( proteus仿真程序演示视频&#xff09; 仿真图proteus 8.9 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;C0073 这里写目录标题基于51单片机的二氧化碳&am…

【数据结构】栈和队列的实现

文章目录一、栈的实现二、队列的实现一、栈的实现 栈是一种特殊的线性表&#xff0c;只允许在固定的一端进行插入和删除元素的操作&#xff0c;进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈低。栈遵循数据后进先出的原则。 创建一个栈&#xff1a; typedef …

就是一整个爱住,你们大胆飞,我就是最坚强的后盾——Java面试突击宝典

前言 马老师说过&#xff0c;员工的离职原因很多&#xff0c;只有两点最真实&#xff1a; 钱&#xff0c;没给到位 心&#xff0c;受委屈了 当然&#xff0c;我是想换个平台&#xff0c;换个方向&#xff0c;想清楚为什么要跳槽&#xff0c;如果真的要跳槽&#xff0c;想要拿…

75.【JavaWeb-03】

JavaWeb(十五)、JavaBean(十六)、MVC三层框架1.早些年:2.三层架构:(十七)、Filter(过滤器)1加入依赖2.基本步骤3.出现500错误的话4.案列演示(十八)、Listener(监听器)1.利用监听实现在线人数的统计(十九)、小结对18之前的(二十)、过滤器、监听器常见应用1.过滤器注册和注销操作…

一起Talk Android吧(第四百一十八回:制作时钟)

文章目录整体思路准备画布绘制表盘绘制刻度绘制指针示例代码各位看官们大家好&#xff0c;上一回中咱们说的例子是"解决Glide不能加载网络图片的方法",这一回咱们介绍的例子是"制作时钟"。闲话休提&#xff0c;言归正转&#xff0c;让我们一起Talk Android…