題目連結:
題目意譯:
你被給定一個正整數 num,其只由數字 6 和 9 所組成。
回傳你藉由改變最多一個位數(6 變成 9,或是 9 變成 6)後最大可獲得的數字。
限制:
1 ≦ num ≦ 10 ^ 4
num 只由數字 6 和 9 所組成。
範例測資:
範例 1:
輸入: num = 9669
輸出: 9969
解釋:
改變第一個位數會得到 6669。
改變第二個位數會得到 9969。
改變第三個位數會得到 9699。
改變第四個位數會得到 9666。
最大的數字為 9969。
範例 2:
輸入: num = 9996
輸出: 9999
解釋: 將最後一個數字 6 變成 9 可以得到最大的數字。
範例 3:
輸入: num = 9999
輸出: 9999
解釋: 最佳策略是不改變任何數字。
解題思維:
策略很簡單——從左至右(也就是由高位到低位)掃過 num,並將第一個遇到的 6 變成 9 即可(如果 num 中沒有 6,則不變動任何數字)。可以看到,如果都是 9,則將維持原樣(因為原本就是最大);而如果 num 有 6 存在,因為越靠左是越高位,因此數值本身越大。因此改最左邊的 6,可以得到最佳的效果。
最後回傳掃過後(可能有被更動)的數字即可。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。