LeetCode (力扣) 12. Integer to Roman ( C ) - Medium - 暴力解

清理异常值(MAD:绝对中位差) 清理异常数据: 中位数绝对偏差(MAD):用来描述单变量样本在定量数据中可变的一种标准 在统计学中,绝对中位差是刻画一元数据样本变化的一个鲁棒度量。由公式可以看出,其求解还算简单,给定一个数据样本集,首先求其中位数,然后求原始数据减去中位数的绝对值从而形成一个新的数据样本,再求新的数据样本的中位数即为绝对中位差。比如说有一个数据样本集X={2 3 8 7 9 6 4},这时候数据的中位数是6,原... 阅读详情

同步发于 JuzerTech 网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

题目为给定一个阿拉伯数字,将之转换成罗马数字的表示方式。

下一题则反过来,把罗马数字转换成阿拉伯数字,此为下一题的连结 : LeetCode 13. Roman to Integer

 

题目与范例如下

 

Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.

Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000

For example, 2 is written as II in Roman numeral, just two one's added together. 12 is written as XII, which is simply X + II. The number 27 is written as XXVII, which is XX + V + II.

Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII. Instead, the number four is written as IV. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as IX. There are six instances where subtraction is used:

I can be placed before V (5) and X (10) to make 4 and 9.
X can be placed before L (50) and C (100) to make 40 and 90.
C can be placed before D (500) and M (1000) to make 400 and 900.
Given an integer, convert it to a roman numeral.

Example 1:

Input: num = 3
Output: "III"
Example 2:

Input: num = 4
Output: "IV"
Example 3:

Input: num = 9
Output: "IX"
Example 4:

Input: num = 58
Output: "LVIII"
Explanation: L = 50, V = 5, III = 3.
Example 5:

Input: num = 1994
Output: "MCMXCIV"
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.

Constraints:

1 <= num <= 3999

 

题目限制数字范围在 1~3999 之间,故我们的解题策略为透过一系列的 if else 暴力解。

1、先配置回传的记忆体,并宣告一个变量 i 用来当回传值的下标,用以一个个储存罗马数字。

2、透过 while 回圈一个个拆出罗马数字,我们先判断有几个 1000 ,接着因为罗马数字表示 9 与 4 时都是透过减法,把 1 放置于前,代表减一。故每次都要额外检查 9 或 4 开头的数字,以此类推当 num 归零时回传字符串。

下方为我的代码

char * intToRoman(int num){
    char *re = (char*) malloc(sizeof(char)*20);
    int i = 0;
    while(num>0){
        if(num>=1000){
            num-=1000;
            re[i++] = 'M';
        }
        else if(num>=900){
            num-=900;
            re[i++] = 'C';
            re[i++] = 'M';
        }
        else if(num>=500){
            num-=500;
            re[i++] = 'D';
        }
        else if(num>=400){
            num-=400;
            re[i++] = 'C';
            re[i++] = 'D';
        }
        else if(num>=100){
            num-=100;
            re[i++] = 'C';
        }
        else if(num>=90){
            num-=90;
            re[i++] = 'X';
            re[i++] = 'C';
        }
        else if(num>=50){
            num-=50;
            re[i++] = 'L';
        }
        else if(num>=40){
            num-=40;
            re[i++] = 'X';
            re[i++] = 'L';
        }
        else if(num>=10){
            num-=10;
            re[i++] = 'X';
        }
        else if(num>=9){
            num-=9;
            re[i++] = 'I';
            re[i++] = 'X';
        }
        else if(num>=5){
            num-=5;
            re[i++] = 'V';
        }
        else if(num>=4){
            num-=4;
            re[i++] = 'I';
            re[i++] = 'V';
        }
        else{
            num--;
            re[i++] = 'I';
        }
        
        
        
    }
    re[i] = '\0';
    return re;
}

 

下方为时间与空间之消耗

Runtime: 4 ms, faster than 80.79 % of C online submissions for Integer to Roman.

Memory Usage: 5.9 MB, less than 80.46 % of C online submissions for Integer to Roman.

 

windows exe爬虫:exe抓包 在不知情所拦截应用使用的流量时,所以建议用Wireshark。本文利用python代码,实现自动拦截,写入pcap包,并用代码分析流量的协议。这样会在本地目录下生成capture_inbound.pcap,可以用wireshark分析,也可以利用python代码进行分析,如果使用python代码进行分析,需要借助pyshark或者scapy。使用的python WinDivert的包,当然前提也是需要安装Wireshark软件,设置环境变量,并安装pydirvert包。 阅读详情

相关推荐

Pseudobulk与FindMarkers单细胞差异基因分析实战对比

本文深入对比了单细胞差异基因分析中Pseudobulk与FindMarkers两种主流方法。通过实战演示,详细解析了二者在底层逻辑、数据准备、分析流程及结果解读上的核心差异,并提供了基于不同生物学问题与数据特点的选择策略,帮助研究者做出更精准的分析决策。

weixin_29218963的博客 332

力扣,12整数转罗马java代码

class Solution { public String intToRoman(int num) { int numCopy = num; String value = ""; int index = 6; int[] nums = new int[7]; String[] str = new String[7]; nums[0] = 1; s...

i_am_beautiful_Girl的博客 218

Innovus Function ECO实战:5步搞定数字后端设计中的网表修正(含Calibre LVS验证技巧)

本文提供了一份完整的Innovus Function ECO实战指南,详细解析了数字后端设计中网表修正的五步流程。从理解Function ECO概念、准备关键文件,到在Innovus中执行逻辑比对、自动布线及GUI检查,并重点攻克了ECO后Calibre LVS验证的难点与调试技巧,帮助工程师高效、精准地完成流片前的设计微调。

day7的博客 948

LeetCode (力扣) 10. Regular Expression Matching ( C ) - Hard - 递归法

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 737

国科大学习资料--计算机视觉(胡占义、董秋雷)--2018-2019第二学期期末试卷

国科大学习资料–计算机视觉(胡占义、董秋雷)–2018-2019第二学期期末试卷 国科大学习资料–计算机视觉(胡占义、董秋雷)–2018-2019第二学期期末试卷 国科大学习资料–计算机视觉(胡占义、董秋雷)–2018-2019第二学期期末试卷 ...

无名何许人的博客 2166

基于RK3588平台的高分辨率多摄像头系统深度优化:从48M单摄到双摄分时复用的完整解决方案

本文深入解析了RK3588平台的高分辨率摄像头实现方案。重点介绍了:1)RK3588的MIPI PHY硬件架构,包括DCPHY和DPHY的资源配置及工作模式;2)双ISP合成技术,通过并行处理提升48M高分辨率图像的处理能力;3)以OV50C40传感器为例,详细展示了48M单摄系统的硬件连接、I2C设备配置和关键参数设置。文章为开发者提供了从硬件连接到软件配置的完整技术方案,有助于实现高性能嵌入式视觉系统。

FJN110的博客 674

LeetCode (力扣) 22. Generate Parentheses (C) - Medium

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。 题目为给定一个数字 n ,列出 n 组 ( ) 的所有排列方式。 题目与范例如下 Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. Example 1: Input: n = 3 Output: ["((()))","(()())","(())()...

JuzerTech的博客 369

MIKE水动力笔记2_水动力基础理论知识

本文所讲内容是水动力基础理论知识,所参考的主要书籍是《水动力学和水质》(第二版,季振刚著,海洋出版社)。

晏长街的博客 1万+

LeetCode 1. Two Sum C 语言解题

同步发于 JuzerTech 网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。 题目为输入一串数列,要寻找两个数字相加与目标值相同的数,并回传它们的位置。 原文题目如下 Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input woul

JuzerTech的博客 350

把 ABAP 接到外部世界的几条路, 从 Web Service 到 RFC、BAPI 与 IDoc 的完整理解

摘要: ABAP 的连接能力是其长期成为企业核心的关键,不仅支持通用协议(HTTP、SOAP、XML),还保留了 SAP 特有的技术(RFC、BAPI、IDoc)。Web Service 是跨系统通信的主轴,依赖 SOAP/WSDL 实现契约化协作,而 Enterprise Service 更强调业务语义的复用与治理。经典技术如 RFC 和 BAPI 因高效稳定仍广泛使用,尤其适合紧耦合场景。ABAP 通过分层工具箱(如代理生成、服务注册)实现灵活集成,平衡新旧技术,满足多样化的企业连接需求。 (字数:15

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 138

Qt C++ 卫星数据接收与处理界面

打开 `MainWindow.ui`,你会发现我们完全是在代码中 (`setupUI`) 创建的 UI。* 访问 [QCustomPlot 官网](https://www.qcustomplot.com/) 下载最新版本的 `qcustomplot.h` 和 `qcustomplot.cpp` 文件。* 对于 FFT,可以使用专门的库如 [FFTW](http://www.fftw.org/),或者 Qt 5.15 及以上版本中提供的 `QFFT` 和 `QComplex` 类。

寒寒豆豆软件公司的博客 148

LeetCode (力扣) 20. Valid Parentheses (C) - Easy

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 293

海波龙(Hyperion,现属 Oracle)合并报表以 HFM(Hyperion Financial Management)为核心系统,方法论核心是以控制为基础确定合并范围,通过维度建模统一数据口径

摘要:海波龙合并报表系统(HFM)采用"规则驱动、维度建模"的方法论,通过四个核心环节实现自动化合并:确定合并范围、数据标准化、自动抵销调整及报表生成。系统支持多会计准则,以控制为基础划分合并方法(完全合并/权益法/成本法),通过维度建模统一数据口径,自动处理内部交易抵销、外币折算等复杂操作。业务操作流程涵盖数据采集、转换、抵销调整到报表生成全过程,关键控制点包括内部交易匹配、股权变动处理等。最终输出合规合并报表及完整审计线索,满足监管与管理需求。(150字)

金牌架构师 1304

LeetCode (力扣) 23. Merge k Sorted Lists (C) - Hard

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。 这题是 LeetCode 21. Merge Two Sorted Lists 的延伸,把两个链表 ( Linked List ) 增加到多个。 把多个链表 ( Linked List ) 依照大小排序,串接在一起,并回传串接完的 Linked List。 题目与范例如下 You are given an array of k linked-lists lists, each linked-list i..

JuzerTech的博客 255

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LeetCode (力扣) 16. 3Sum Closest (C) - Medium 暴力解、双指标( Merge Sort )、双指标( Quick Sort )

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 240

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LeetCode (力扣) 15. 3Sum (C) - Medium ( 排序+搜寻法 )

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 239

LeetCode (力扣) 17. Letter Combinations of a Phon (C) - Medium (递归法)

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 231

LeetCode 4. Median of Two Sorted Arrays ( C ) - Hard 快速解

同步发于 JuzerTech 网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。 题目为给定两个已排序之整数数组,请撰写程式回传两数组的中位数,如中位数有两个则回传两者之平均值。 题目与范例如下 Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays. Example 1: Input: nums1 = [1,3],.

JuzerTech的博客 219

LeetCode (力扣) 8. String to Integer (atoi) ( C ) - Medium

同步发于 JuzerTech 网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。 题目为给定一个字符串,把它转换成整数型态,复现 C语言中的 atoi() 函数。 这题的测资有点复杂,要考虑的情况有点多。 题目与范例如下 Implement the myAtoi(string s) function, which converts a string to a 32-bit signed integer (similar to C/C++'s atoi function). The .

JuzerTech的博客 211

LeetCode (力扣) 11. Container With Most Water ( C ) - Medium - 双指针法

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 206

LeetCode (力扣) 18. 4Sum (C) - Medium (双指针法、搜寻法)

同步发于JuzerTech网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。

JuzerTech的博客 206

LeetCode 5. Longest Palindromic Substring ( C ) - Medium

同步发于 JuzerTech 网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。 题目为给定一个字符串,请撰写一个代码,回传此字符串中最长的回文。 题目与范例如下 Given a strings, returnthe longest palindromic substringins. Example 1: Input: s = "babad" Output: "bab" Note: "aba" is also a valid answer. Example 2: ...

JuzerTech的博客 205

LeetCode 7. Reverse Integer ( C ) - Easy

同步发于 JuzerTech 网站,里面有我软、硬件学习的纪录与科技产品开箱,欢迎进去观看。 题目为给定一个整数 ( INT ) ,反转此整数 ( INT )。 题目与范例如下 Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1].

JuzerTech的博客 198

LeetCode 每日一题 2026/11/2-2026/11/8

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步

AlphaTao的博客 175

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 365

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t

huayimenghan的博客 206

力扣73 矩阵置零

该解法通过标记含0的行和列来实现矩阵置零。遍历矩阵,用布尔数组记录有0的行和列;再遍历一次,若当前行或列被标记,则置为0。时间复杂度O(mn),空间复杂度O(m+n)。

Pniubi的博客 21
上一篇: LeetCode (力扣) 11. Container With Most Water ( C ) - Medium - 双指针法
下一篇: LeetCode (力扣) 13. Roman to Integer ( C ) - Easy- 暴力解
JuzerTech
博客等级 码龄6年 7粉丝 34原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值