演算法刷題步驟範例

2021-10-05 12:46:51 字數 2492 閱讀 3182

羅馬數字包含以下七種字元: i, v, x, l,c,d 和 m。

字元 數值

i 1v 5

x 10

l 50

c 100

d 500

m 1000

例如, 羅馬數字 2 寫做 ii ,即為兩個並列的 1。12 寫做 xii ,即為 x + ii 。 27 寫做 xxvii, 即為 xx + v + ii 。

通常情況下,羅馬數字中小的數字在大的數字的右邊。但也存在特例,例如 4 不寫做 iiii,而是 iv。數字 1 在數字 5 的左邊,所表示的數等於大數 5 減小數 1 得到的數值 4 。同樣地,數字 9 表示為 ix。這個特殊的規則只適用於以下六種情況:

i 可以放在 v (5) 和 x (10) 的左邊,來表示 4 和 9。

x 可以放在 l (50) 和 c (100) 的左邊,來表示 40 和 90。

c 可以放在 d (500) 和 m (1000) 的左邊,來表示 400 和 900。

給定乙個整數,將其轉為羅馬數字。輸入確保在 1 到 3999 的範圍內。

示例 1:

輸入: 3

輸出: "iii"

示例 2:

輸入: 4

輸出: "iv"

示例 3:

輸入: 9

輸出: "ix"

示例 4:

輸入: 58

輸出: "lviii"

解釋: l = 50, v = 5, iii = 3.

示例 5:

輸入: 1994

輸出: "mcmxciv"

解釋: m = 1000, cm = 900, xc = 90, iv = 4.

public string inttoroman

(int num)

else

if(num >=

900)

else

if(num >=

500)

else

if(num >=

400)

else

if(num >=

100)

else

if(num >=90)

else

if(num >=50)

else

if(num >=40)

else

if(num >=10)

else

if(num >=9)

else

if(num >=5)

else

if(num >=4)

else

if(num >=1)

}return sb.

tostring()

;}

其實可以仔細思考一下,這段**的問題:

public string inttoroman

(int num)

while

(num >=

900)

while

(num >=

500)

while

(num >=

400)

while

(num >=

100)

while

(num >=90)

while

(num >=50)

while

(num >=40)

while

(num >=10)

while

(num >=9)

while

(num >=5)

while

(num >=4)

while

(num >=1)

}return sb.

tostring()

;}

我們通過,while替代 if判斷,這樣就不用每次都從上判斷到下

改進後就解決了問題1

private

final

int[

] tennum =

newint

;private

final string[

] lmnum =

newstring

;public string inttoroman

(int num)}}

return sb.

tostring()

;}

我們通過定義一些常量,避免大量重複的邏輯判斷。

但是很明顯,改進二沒有任何的效能提公升,甚至還要差一丟丟,但是很美觀,可讀性強了很多

解題步驟:

演算法刷題ING

給定字串j代表石頭中寶石的型別,和字串s代表你擁有的石頭。s中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。j中的字母不重複,j和s中的所有字元都是字母。字母區分大小寫,因此 a 和 a 是不同型別的石頭。示例 輸入 j aa s aaabbbb 輸出 3class so...

演算法刷題(2)

題目一 對應gradientboosting tree演算法,以下說法正確的是 1.當增加最小樣本 個數,我們可以抵制過擬合 2.當增加最小樣本 個數,會導致過擬合 3.當我們減少訓練單個學習器的樣本個數,我們可以降低variance 4.當我們減少訓練單個學習器的樣本個數,我們可以降低bias a...

演算法刷題(7)

題目一 假定你使用svm學習資料x,資料x裡面有些點存在錯誤。現在如果你使用乙個二次核函式,多項式階數為2,使用懲罰因子c作為超參之一。當你使用較大的c c趨於無窮 則 a仍然能正確分類資料b 不能正確分類c 不確定d 以上均不正確解析 正確答案是 a,採用更大的c,誤分類點的懲罰就更大,因此決策邊...