題目連結(jié):
題目意譯:
你被給定一個(gè)整數(shù) num。你得知 Bob 將會(huì)偷偷地把 10 種可能的數(shù)字之一(0 到 9)替換成另一種數(shù)字。
回傳 Bob 藉由替換 num 中的恰好一種數(shù)字,其可以得到的最大值與最小值之差值。
注:
當(dāng) Bob 替換一個(gè)數(shù)字 d1 成另一個(gè)數(shù)字 d2 時(shí),Bob 將會(huì)把 num 所有是 d1 的位數(shù)替換成 d2。
Bob 可以替換一個(gè)數(shù)字成自己本身,而這個(gè)情況下 num 將不變。
Bob 在分別得到最大值和最小值的情況下,可以選擇替換掉不同的數(shù)字。
經(jīng)過替換後的結(jié)果數(shù)字可以包含前導(dǎo)零。
限制:
1 ≦ num ≦ 10 ^ 8
範(fàn)例測(cè)資:
範(fàn)例 1:
輸入: num = 11891
輸出: 99009
解釋:
為了得到最大值,Bob 可以將數(shù)字 1 替換成數(shù)字 9 來得到 99899。
為了得到最大值,Bob 可以將數(shù)字 1 替換成數(shù)字 0 來得到 890。
這兩個(gè)數(shù)字的差值為 99009。
範(fàn)例 2:
輸入: num = 90
輸出: 99
解釋:
最大值為 99(0 替換成 9)而最小值為 0(9 替換成 0)。
因此,我們回傳 99。
解題思維:
由於 Bob 最多只有 100 種替換的方式,即:
0 換 0、
0 換 1、
……
0 換 9、
1 換 0、
1 換 1、
……
9 換 9
因此我們可以直接不管「字典序」(要比較快得出最小值和最大值就需要這個(gè)),直接窮舉出這 100 種方式並計(jì)算出替換後的數(shù)字。然後在這 100 種內(nèi)挑出最小值和最大值來算差值即可。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請(qǐng)各位大大撥冗討論。