日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换

發布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

12 Integer to Roman
13 Roman to Integer

有可能不注意的結果:

class Solution { public:/*1、相同的數字連寫,所表示的數等于這些數字相加得到的數,如:Ⅲ = 3; 2、小的數字在大的數字的右邊,所表示的數等于這些數字相加得到的數, 如:Ⅷ = 8;Ⅻ = 12; 3、小的數字,(限于Ⅰ、X 和C)在大的數字的左邊,所表示的數等于大數減小數得到的數,如:Ⅳ= 4;Ⅸ= 9; 4、正常使用時,連寫的數字重復不得超過三次。(表盤上的四點鐘“IIII”例外) 5、在一個數的上面畫一條橫線,表示這個數擴大1000倍。*/int romanToInt(string s) {int res=0;int lastValue=0;int digit;for(int i=s.size()-1;i>=0;i--){switch(s[i]){case 'I': digit=1; break;case 'V': digit=5; break;case 'X': digit=10; break;case 'L': digit=50; break;case 'C': digit=100; break;case 'D': digit=500; break;case 'M': digit=1000; break;}if(digit>=lastValue){res+=digit;lastValue=digit;}else res-=digit;}return res;}};

羅馬數字是阿拉伯數字傳入之前使用的一種數碼。羅馬數字采用七個羅馬字母作數字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。記數的方法:
1. 相同的數字連寫,所表示的數等于這些數字相加得到的數,如 Ⅲ=3;
2. 小的數字在大的數字的右邊,所表示的數等于這些數字相加得到的數,如 Ⅷ=8、Ⅻ=12;
3. 小的數字(限于 Ⅰ、X 和 C)在大的數字的左邊,所表示的數等于大數減小數得到的數,如 Ⅳ=4、Ⅸ=9;
4. 在一個數的上面畫一條橫線,表示這個數增值 1,000 倍,如
5.

string intToRoman(int num){string table[4][10] = {{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},{"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},{"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},{"", "M", "MM", "MMM"}};string result;int count = 0;while(num > 0){int temp = num % 10;result = table[count][temp] + result;num /= 10;count++;}return result; }

The basic idea is really simple: replace every digit in num by roman numerals.
For example, we have a num: 2438.
2 –> “MM”
4 –> “CD”
3 –> “XXX”
8 –> “VIII”
Then the result is “MMCDXXXVIII”.

M = ["", "M", "MM", "MMM"]; C = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"]; X = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"]; I = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]; return M[num/1000] + C[(num%1000)/100] + X[(num%100)/10] + I[num%10];

Simple C solution 16ms
● 0
L

ljbschen
Reputation: 10

void helper (char* ans, int* curp, int step, int one, int five, int ten) {char ch[]={'I','V','X','L','C','D','M'};int offset=0;if (step==1000) offset=6;else if (step==100) offset=4;else if (step==10) offset=2;else offset=0;if (one==-1) ans[(*curp)++] = ch[offset];if (ten==1) ans[(*curp)++] = ch[offset+2];if (five==1) ans[(*curp)++] = ch[offset+1];while (one-->0) ans[(*curp)++] = ch[offset]; }char* intToRoman(int num) {char *ans = malloc(sizeof(char)*16);int i=0, step=1000, digit=0;int one=0,five=0,ten=0;int curp=0;while (num>0) {digit=num/step;if (digit==9) {one=-1;five=0;ten=1;}else if (digit>=5) {one=digit-5;five=1;ten=0;}else if (digit==4) {one=-1;five=1;ten=0;}else if (digit==0) {one=0;five=0;ten=0;}else {one=digit;five=0;ten=0;}helper(ans,&curp,step,one,five,ten);num-=digit*step;step/=10;}ans[curp]='\0';return ans; }

《架構大數據—-大數據技術及算法解析》

緒論
2013年被稱為大數據元年,據IDC預測,到2020年全球將擁有35ZB(1ZB = 1021字節)的數據,大數據涉及國家戰略、區域及企業發展、社會民生的方方面面,掌握大數據的核心概念、模式和技術,就把握了新時代的脈搏。
1.大數據技術概述

1.1大數據的概念
大數據指的是無法在規定時間內用現有的常規軟件工具對其內容進行抓取、管理和處理的數據集合。
大數據技術則特指新一代的創新型的技術,能夠突破常規軟件的限制,是對大數據進行采集、存儲和處理的技術的統稱。
大數據(BigData)一詞正式出現是在2011年麥肯錫全球研究院發布的《大數據:下一個創新、競爭和生產力的前沿》研究報告中。
大數據的4個根本特征:
1.Volume,數據量足夠大
2.Variety,數據的種類多樣
3.Velocity,數據的增長及處理速度快
4.Value,數據蘊藏價值大

1.2 大數據的行業價值
1.分析用戶行為,建立數據模型,并進行預測
WalMart將尿不濕和啤酒擺放在一起的銷售策略。
2.提升企業的資產管理,優化企業的業務流程
UPS通過在貨車上安裝傳感器,優化行車路線,2011年,其駕駛員少跑了將近4828萬千米的路程。
3.大數據服務智慧城市,智慧交通
智能電表,升級智能電網,由原來的數據庫架構升級為HBase,使用Hive進行相關的統計分析。
4.變革公共醫療衛生,對疾病進行預測
Google 的Flurend,百度的疾病預測
5.在金融行業利用大數據進行戰略決策和精準營銷
6.利用大數據保障公共安全
7.利用大數據促進教育行業變革
8.大數據在改善著每個人的生活


p.s.

總結

以上是生活随笔為你收集整理的leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。