12. 整数转罗马数字(数学)【S】

本文介绍如何将整数转换为罗马数字,重点在于理解问题并使用贪心策略。通过双数组实现,根据数字大小选择合适的罗马数字表示,避免过度拆分。例如,7会表示为5+1+1,而不是4+1+1+1或7个1。对于复杂情况如2999,也会遵循优先选择大数值的罗马数字组合。关键在于将13种罗马数字情况以数组形式表示,作为区间限制。
摘要由CSDN通过智能技术生成

12. 整数转罗马数字

在这里插入图片描述
在这里插入图片描述
本题并不难,重点就是看懂题目,分清楚有多少种情况。并且用到的是朴素的贪心思想(朴素,并不意识到用了贪心,是一种直观的贪心选择)

首先读题,了解公有13种情况:肯定不能用if…else来划分,那么用双数组来移动即可,{1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}

根据数字,优先选择不超过自己的表示方式,

eg:7:肯定选择5 + 1 + 1,而不会选择4+1+1+1,或者是7个1

2999:肯定选择 1000 + 1000 + 900 + 90 + 9

class Solution {
   
    public String intToRoman(int num) {
   
        StringBuilder sb = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值